The following lines contain the word 'select', 'insert', 'update' or 'delete':
G_UPDATED_FLAG_TBL VARCHAR_TYPE; -- 3215497
G_SELECTED_VOLUME_ATTR_TBL VARCHAR_TYPE;
G_INSERT_INTO_FORMULA_TMP BOOLEAN ; -- Change
| UPDATE_ROUNDING_FACTOR
| to update rounding_factor in the qp_npreq_lines_tmp table
+--------------------------------------------------------------------
*/
PROCEDURE UPDATE_ROUNDING_FACTOR(
p_mcurr_installed_used_flag IN VARCHAR2,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2) AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.UPDATE_ROUNDING_FACTOR';
SELECT distinct price_list_header_id , currency_code , trunc(pricing_effective_date) pricing_effective_date
FROM qp_npreq_lines_tmp
where price_flag in ('Y','P')
and line_type_code = 'LINE'
and rounding_factor is null
and price_list_header_id > 0; --[julin/5395256]
p_price_list_id_tbl.delete;
p_currency_code_tbl.delete;
p_pricing_eff_date_tbl.delete;
UPDATE qp_npreq_lines_tmp
SET ROUNDING_FACTOR = p_rounding_factor_tbl(i)
WHERE PRICE_FLAG in (QP_PREQ_GRP.G_YES, QP_PREQ_GRP.G_PHASE)
AND PRICE_LIST_HEADER_ID = p_price_list_id_tbl(i)
AND CURRENCY_CODE = p_currency_code_tbl(i)
AND trunc(PRICING_EFFECTIVE_DATE) = p_pricing_eff_date_tbl(i); -- bug 3364978
engine_debug('Number of lines updated with rounding factor : ' || SQL%ROWCOUNT);
QP_COPY_DEBUG_PVT.INSERT_DEBUG_LINE(p_text);
|Procedure INSERT_QUAL
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_QUAL(
p_LIST_HEADER_ID IN NUMBER_TYPE,
p_LIST_LINE_ID IN NUMBER_TYPE,
p_VALIDATED_FLAG IN VARCHAR_TYPE,
p_APPLIED_FLAG IN VARCHAR_TYPE,
p_ATTRIBUTE_LEVEL IN VARCHAR_TYPE,
p_ATTRIBUTE_TYPE IN VARCHAR_TYPE,
p_CONTEXT IN VARCHAR_TYPE,
p_ATTRIBUTE IN VARCHAR_TYPE,
p_VALUE_FROM IN VARCHAR_TYPE,
p_GROUPING_NO IN PLS_INTEGER_TYPE,
p_QUALIFIER_PRECEDENCE IN PLS_INTEGER_TYPE,
p_DATATYPE IN VARCHAR_TYPE,
p_SETUP_VALUE_FROM IN VARCHAR_TYPE,
p_SETUP_VALUE_TO IN VARCHAR_TYPE,
p_PRICING_ATTR_FLAG IN VARCHAR_TYPE,
p_OPERATOR_TYPE IN VARCHAR_TYPE,
p_LIST_TYPE_CODE IN VARCHAR_TYPE,
p_ASK_FOR_FLAG IN VARCHAR_TYPE,
p_QUALIFIER_TYPE IN VARCHAR_TYPE,
p_QUALIFIER_GROUP_CNT IN NUMBER_TYPE,
p_OTHERS_GROUP_CNT IN NUMBER_TYPE,
p_HEADER_QUALS_EXIST_FLAG IN VARCHAR_TYPE,
p_SEARCH_IND IN NUMBER_TYPE,
p_PRICING_STATUS_CODE IN VARCHAR_TYPE,
p_START_DATE_ACTIVE IN DATE_TYPE,
p_END_DATE_ACTIVE IN DATE_TYPE,
p_LINE_INDEX IN NUMBER_TYPE,
p_PRICING_EFFECTIVE_DATE IN DATE_TYPE,
p_START_DATE_ACTIVE_FIR IN DATE_TYPE,
p_END_DATE_ACTIVE_FIR IN DATE_TYPE,
p_LINE_TYPE_CODE IN VARCHAR_TYPE,
p_PRICING_PHASE_ID IN PLS_INTEGER_TYPE,
p_UNIQUE_KEY IN VARCHAR_TYPE,
p_START_DATE_ACTIVE_H IN DATE_TYPE,
p_END_DATE_ACTIVE_H IN DATE_TYPE,
p_START_DATE_ACTIVE_SEC IN DATE_TYPE,
p_END_DATE_ACTIVE_SEC IN DATE_TYPE,
p_ACTIVE_DATE_FIR_TYPE IN VARCHAR_TYPE,
p_ACTIVE_DATE_SEC_TYPE IN VARCHAR_TYPE,
p_HEADER_LIMIT_EXISTS IN VARCHAR_TYPE,
p_DERIVED_QUALIFIER_FLAG IN VARCHAR_TYPE, -- Added for TCA
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2) AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_QUAL';
Insert into QP_PREQ_QUAL_TMP
( LIST_HEADER_ID
, LIST_LINE_ID
, LINE_INDEX
, QUALIFIER_ATTRIBUTE_LEVEL
, QUALIFIER_ATTRIBUTE_TYPE
, QUALIFIER_ATTRIBUTE_CONTEXT
, QUALIFIER_ATTRIBUTE
, QUALIFIER_ATTRIBUTE_VALUE
, QUALIFIER_GROUPING_NO
, QUALIFIER_PRECEDENCE
, QUALIFIER_DATATYPE
, SETUP_VALUE_FROM
, SETUP_VALUE_TO
, QUALIFIER_PRICING_ATTR_FLAG
, QUALIFIER_OPERATOR_TYPE
, ASK_FOR_FLAG
, CREATED_FROM_LIST_TYPE
, VALIDATED_FLAG
, APPLIED_FLAG
, QUALIFIER_TYPE
, QUALIFIER_GROUP_CNT
, OTHERS_GROUP_CNT
, HEADER_QUALS_EXIST_FLAG
, SEARCH_IND
, PRICING_STATUS_CODE
, START_DATE_ACTIVE
, END_DATE_ACTIVE
, PRICING_EFFECTIVE_DATE
, START_DATE_ACTIVE_FIRST
, END_DATE_ACTIVE_FIRST
, LINE_TYPE_CODE
, UNIQUE_KEY
, PRICING_PHASE_ID
, START_DATE_ACTIVE_H
, END_DATE_ACTIVE_H
, START_DATE_ACTIVE_SECOND
, END_DATE_ACTIVE_SECOND
, ACTIVE_DATE_FIRST_TYPE
, ACTIVE_DATE_SECOND_TYPE
, HEADER_LIMIT_EXISTS
, DERIVED_QUALIFIER_FLAG -- Added for TCA
)
VALUES
( p_LIST_HEADER_ID(i)
, p_LIST_LINE_ID(i)
, p_LINE_INDEX(i)
, p_ATTRIBUTE_LEVEL(i)
, p_ATTRIBUTE_TYPE(i)
, p_CONTEXT(i)
, p_ATTRIBUTE(i)
, p_VALUE_FROM(i)
, p_GROUPING_NO(i)
, p_QUALIFIER_PRECEDENCE(i)
, p_DATATYPE(i)
, p_SETUP_VALUE_FROM(i)
, p_SETUP_VALUE_TO(i)
, p_PRICING_ATTR_FLAG(i)
, p_OPERATOR_TYPE(i)
, p_ASK_FOR_FLAG(i)
, p_LIST_TYPE_CODE(i)
, p_VALIDATED_FLAG(i)
, p_APPLIED_FLAG(i)
, p_QUALIFIER_TYPE(i)
, p_QUALIFIER_GROUP_CNT(i)
, p_OTHERS_GROUP_CNT(i)
, p_HEADER_QUALS_EXIST_FLAG(i)
, p_SEARCH_IND(i)
, p_PRICING_STATUS_CODE(i)
, p_START_DATE_ACTIVE(i)
, p_END_DATE_ACTIVE(i)
, p_PRICING_EFFECTIVE_DATE(i)
, p_START_DATE_ACTIVE_FIR(i)
, p_END_DATE_ACTIVE_FIR(i)
, p_LINE_TYPE_CODE(i)
, p_UNIQUE_KEY(i)
, p_PRICING_PHASE_ID(i)
, p_START_DATE_ACTIVE_H(i)
, p_END_DATE_ACTIVE_H(i)
, p_START_DATE_ACTIVE_SEC(i)
, p_END_DATE_ACTIVE_SEC(i)
, p_ACTIVE_DATE_FIR_TYPE(i)
, p_ACTIVE_DATE_SEC_TYPE(i)
, p_HEADER_LIMIT_EXISTS(i)
, p_DERIVED_QUALIFIER_FLAG(i)); -- Added for TCA
select /*+ ORDERED NO_EXPAND USE_NL(qpq qplatq qph) index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N6)
index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_outer_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ1' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
(select distinct list_header_id,list_line_id,qualifier_grouping_no
from qp_preq_qual_tmp
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id) qptq,
qp_qualifiers qpq ,
qp_npreq_line_attrs_tmp qplatq,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qptq.list_header_id
and qpq.list_line_id = qptq.list_line_id
and qpq.qualifier_grouping_no = qptq.qualifier_grouping_no
and qpq.qualifier_grouping_no <> -1
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.qualifier_attr_value = qplatq.value_from
and qpq.comparison_operator_code = '='
and qpq.search_ind = 2
and qpq.qualifier_group_cnt > 1
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qph.active_flag = G_YES
and qpq.active_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.line_index > 0
and qplatq.distinct_qualifier_flag = G_YES
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
--and qptq.pricing_status_code = G_STATUS_UNCHANGED
--and qptq.pricing_phase_id = p_pricing_phase_id
union all
select /*+ ORDERED USE_NL(qpq qplatq qph) index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N6) index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_o
uter_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ1' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
(select distinct list_header_id,list_line_id
from qp_preq_qual_tmp
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id) qptq,
qp_qualifiers qpq ,
qp_npreq_line_attrs_tmp qplatq,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qptq.list_header_id
and qpq.list_line_id = qptq.list_line_id
and qpq.qualifier_grouping_no = -1
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.qualifier_attr_value = qplatq.value_from
and qpq.comparison_operator_code = '='
and qpq.search_ind = 2
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qph.active_flag = G_YES
and qpq.active_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.line_index > 0
and qplatq.distinct_qualifier_flag = G_YES
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
--and qptq.pricing_status_code = G_STATUS_UNCHANGED
--and qptq.pricing_phase_id = p_pricing_phase_id
union all
select /*+ ORDERED USE_NL(qpq qplatq qph) index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N6) index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_outer_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ1' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
(select distinct list_header_id,list_line_id,qualifier_grouping_no
from qp_preq_qual_tmp
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id) qptq,
qp_qualifiers qpq ,
qp_npreq_line_attrs_tmp qplatq,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qptq.list_header_id
and qpq.list_line_id = qptq.list_line_id
and qpq.qualifier_grouping_no = qptq.qualifier_grouping_no
and qpq.qualifier_grouping_no <> -1
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.comparison_operator_code = G_OPERATOR_BETWEEN
and qpq.qualifier_datatype = G_NUMERIC
and qpq.search_ind = 2
and qpq.qualifier_group_cnt > 1
and qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qph.active_flag = G_YES
and qpq.active_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.line_index > 0
and qplatq.distinct_qualifier_flag = G_YES
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
--and qptq.pricing_status_code = G_STATUS_UNCHANGED
--and qptq.pricing_phase_id = p_pricing_phase_id
union all
select /*+ ORDERED USE_NL(qpq qplatq qph) index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N6) index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_ou
ter_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ1' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
(select distinct list_header_id,list_line_id
from qp_preq_qual_tmp
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id) qptq,
qp_qualifiers qpq ,
qp_npreq_line_attrs_tmp qplatq,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qptq.list_header_id
and qpq.list_line_id = qptq.list_line_id
and qpq.qualifier_grouping_no = -1
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.comparison_operator_code = G_OPERATOR_BETWEEN
and qpq.qualifier_datatype = G_NUMERIC
and qpq.search_ind = 2
and qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qph.active_flag = G_YES
and qpq.active_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.line_index > 0
and qplatq.distinct_qualifier_flag = G_YES
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
--and qptq.pricing_status_code = G_STATUS_UNCHANGED
--and qptq.pricing_phase_id = p_pricing_phase_id
union all
select /*+ ORDERED USE_NL(qpq qplatq qph) index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N6) index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_outer_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ1' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
(select distinct list_header_id,list_line_id,qualifier_grouping_no
from qp_preq_qual_tmp
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id) qptq,
qp_qualifiers qpq ,
qp_npreq_line_attrs_tmp qplatq,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qptq.list_header_id
and qpq.list_line_id = qptq.list_line_id
and qpq.qualifier_grouping_no = qptq.qualifier_grouping_no
and qpq.qualifier_grouping_no <> -1
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.comparison_operator_code = G_OPERATOR_BETWEEN
and qpq.search_ind = 2
and qpq.qualifier_group_cnt > 1
and qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y)
--and decode(qpq.qualifier_datatype,G_VARCHAR,qplatq.value_from,G_DATE_X,qplatq.value_from,
-- G_DATE_Y,qplatq.value_from,null)
and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and qph.active_flag = G_YES
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qpq.active_flag = G_YES
and qplatq.line_index > 0
and qplatq.distinct_qualifier_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
--and qptq.pricing_status_code = G_STATUS_UNCHANGED
--and qptq.pricing_phase_id = p_pricing_phase_id
union all
select /*+ ORDERED USE_NL(qpq qplh qph) index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N6) index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_out
er_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ1' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
(select distinct list_header_id,list_line_id
from qp_preq_qual_tmp
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id) qptq,
qp_qualifiers qpq ,
qp_npreq_line_attrs_tmp qplatq,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qptq.list_header_id
and qpq.list_line_id = qptq.list_line_id
and qpq.qualifier_grouping_no = -1
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.comparison_operator_code = G_OPERATOR_BETWEEN
and qpq.search_ind = 2
and qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y)
--and decode(qpq.qualifier_datatype,G_VARCHAR,qplatq.value_from,G_DATE_X,qplatq.value_from,
-- G_DATE_Y,qplatq.value_from,null)
and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and qph.active_flag = G_YES
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qpq.active_flag = G_YES
and qplatq.line_index > 0
and qplatq.distinct_qualifier_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
--and qptq.pricing_status_code = G_STATUS_UNCHANGED
--and qptq.pricing_phase_id = p_pricing_phase_id
union all
select /*+ ORDERED USE_NL(qpq qplh qph) index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N7)
index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_outer_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ1' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
(select distinct list_header_id,list_line_id,qualifier_grouping_no
from qp_preq_qual_tmp
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id) qptq,
qp_qualifiers qpq ,
qp_npreq_line_attrs_tmp qplatq,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qptq.list_header_id
and qpq.list_line_id = qptq.list_line_id
and qpq.qualifier_grouping_no = qptq.qualifier_grouping_no
and qpq.qualifier_grouping_no <> -1
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.comparison_operator_code = 'NOT ='
and qpq.qualifier_attr_value <> qplatq.value_from
and qpq.search_ind = 2
and qpq.qualifier_group_cnt > 1
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qph.active_flag = G_YES
and qpq.active_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.line_index > 0
and qplatq.distinct_qualifier_flag = G_YES
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
--and qptq.pricing_status_code = G_STATUS_UNCHANGED
--and qptq.pricing_phase_id = p_pricing_phase_id
union all
select /*+ ORDERED USE_NL(qpq qplh qph) index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N7)
index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_outer_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ1' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
(select distinct list_header_id,list_line_id
from qp_preq_qual_tmp
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id) qptq,
qp_qualifiers qpq ,
qp_npreq_line_attrs_tmp qplatq,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qptq.list_header_id
and qpq.list_line_id = qptq.list_line_id
and qpq.qualifier_grouping_no = -1
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.comparison_operator_code = 'NOT ='
and qpq.qualifier_attr_value <> qplatq.value_from
and qpq.search_ind = 2
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qph.active_flag = G_YES
and qpq.active_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.line_index > 0
and qplatq.distinct_qualifier_flag = G_YES
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')); -- Added for TCA
G_LIST_HEADER_ID_TBL_Q.delete;
G_LIST_LINE_ID_TBL_Q.delete;
G_VALIDATED_FLAG_TBL_Q.delete;
G_APPLIED_FLAG_TBL_Q.delete;
G_ATTRIBUTE_LEVEL_TBL_Q.delete;
G_ATTRIBUTE_TYPE_TBL_Q.delete;
G_CONTEXT_TBL_Q.delete;
G_ATTRIBUTE_TBL_Q.delete;
G_VALUE_FROM_TBL_Q.delete;
G_GROUPING_NO_TBL_Q.delete;
G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
G_DATATYPE_TBL_Q.delete;
G_SETUP_VALUE_FROM_TBL_Q.delete;
G_SETUP_VALUE_TO_TBL_Q.delete;
G_PRICING_ATTR_FLAG_TBL_Q.delete;
G_OPERATOR_TYPE_TBL_Q.delete;
G_QUALIFIER_TYPE_TBL_Q.delete;
G_LIST_TYPE_CODE_TBL_Q.delete;
G_ASK_FOR_FLAG_TBL_Q.delete;
G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
G_OTHERS_GROUP_CNT_TBL_Q.delete;
G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
G_SEARCH_IND_TBL_Q.delete;
G_PRICING_STATUS_CODE_TBL_Q.delete;
G_START_DATE_ACTIVE_TBL_Q.delete;
G_END_DATE_ACTIVE_TBL_Q.delete;
G_LINE_INDEX_TBL_Q.delete;
G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
G_LINE_TYPE_CODE_TBL_Q.delete;
G_PRICING_PHASE_ID_TBL_Q.delete;
G_UNIQUE_KEY_TBL_Q.delete;
G_START_DATE_ACTIVE_TBL_H_Q.delete;
G_END_DATE_ACTIVE_TBL_H_Q.delete;
G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
G_DERIVED_QUALIFIER_FLAG_TBL_Q.delete; -- Added for TCA
INSERT_QUAL(
G_LIST_HEADER_ID_TBL_Q
, G_LIST_LINE_ID_TBL_Q
, G_VALIDATED_FLAG_TBL_Q
, G_APPLIED_FLAG_TBL_Q
, G_ATTRIBUTE_LEVEL_TBL_Q
, G_ATTRIBUTE_TYPE_TBL_Q
, G_CONTEXT_TBL_Q
, G_ATTRIBUTE_TBL_Q
, G_VALUE_FROM_TBL_Q
, G_GROUPING_NO_TBL_Q
, G_QUALIFIER_PRECEDENCE_TBL_Q
, G_DATATYPE_TBL_Q
, G_SETUP_VALUE_FROM_TBL_Q
, G_SETUP_VALUE_TO_TBL_Q
, G_PRICING_ATTR_FLAG_TBL_Q
, G_OPERATOR_TYPE_TBL_Q
, G_LIST_TYPE_CODE_TBL_Q
, G_ASK_FOR_FLAG_TBL_Q
, G_QUALIFIER_TYPE_TBL_Q
, G_QUALIFIER_GROUP_CNT_TBL_Q
, G_OTHERS_GROUP_CNT_TBL_Q
, G_HEADER_QUALS_EXIST_FLG_TBL_Q
, G_SEARCH_IND_TBL_Q
, G_PRICING_STATUS_CODE_TBL_Q
, G_START_DATE_ACTIVE_TBL_Q
, G_END_DATE_ACTIVE_TBL_Q
, G_LINE_INDEX_TBL_Q
, G_PRICING_EFFECTIVE_DATE_TBL_Q
, G_START_DATE_ACTIVE_FIR_TBL_Q
, G_END_DATE_ACTIVE_FIR_TBL_Q
, G_LINE_TYPE_CODE_TBL_Q
, G_PRICING_PHASE_ID_TBL_Q
, G_UNIQUE_KEY_TBL_Q
, G_START_DATE_ACTIVE_TBL_H_Q
, G_END_DATE_ACTIVE_TBL_H_Q
, G_START_DATE_ACTIVE_SEC_TBL_Q
, G_END_DATE_ACTIVE_SEC_TBL_Q
, G_ACTIVE_DATE_FIR_TYPE_TBL_Q
, G_ACTIVE_DATE_SEC_TYPE_TBL_Q
, G_HEADER_LIMIT_EXISTS_TBL_Q
, G_DERIVED_QUALIFIER_FLAG_TBL_Q -- Added for TCA
, l_status_code
, l_status_text);
select /*+ ORDERED USE_NL(qpq qplh qph) index(qpq qp_qualifiers_n4) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) l_outer_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq ,
qp_list_header_phases qplh,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qplh.list_header_id
and qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and qplh.pricing_phase_id = p_pricing_phase_id
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.qualifier_attr_value = qplatq.value_from
and qpq.comparison_operator_code = '='
and qpq.search_ind = 1
and qpq.list_line_id <> -1
and ( qpq.list_header_id in (SELECT distinct list_header_id -- for qualified headers from Cache_Header_Qualifiers
FROM qp_preq_qual_tmp
WHERE pricing_phase_id = p_pricing_phase_id
AND pricing_status_code = G_STATUS_UNCHANGED)
or
qpq.header_quals_exist_flag = G_NO) -- Pure line level qualifiers
and (not exists (select 'x' --3520634 start
from qp_pricing_attributes qp_pa -- if no product defined,select the header
where qp_pa.list_line_id = qpq.list_line_id
and rownum = 1)
OR -- If product defined on line level,select headers for which product matches.
exists (select /*+ ORDERED USE_NL(qpprod) */ 'x'
FROM qp_pricing_attributes c, qp_npreq_line_attrs_tmp qpprod
WHERE c.list_header_id = qpq.list_header_id
AND c.list_line_id = qpq.list_line_id
AND c.pricing_phase_id = p_pricing_phase_id
AND qpprod.context = c.product_attribute_context
AND qpprod.attribute = c.product_attribute
AND qpprod.value_from = c.product_attr_value
AND qpprod.pricing_status_code = G_STATUS_UNCHANGED
AND c.qualification_ind in (G_YES_PROD_LINE_QUAL_IND, G_YES_PROD_PRIC_LINE_QUAL_IND,
G_YES_PROD_HDR_LINE_QUAL_IND, G_YES_PRIC_HDR_LINE_QUAL_IND)
AND qpprod.attribute_type = G_PRODUCT_TYPE
AND c.excluder_flag = G_NO
--3683298 AND qpprod.line_index = qplatq.line_index
AND rownum = 1)
) --3520634 end
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qpq.list_type_code not in ('PRL','AGR')
and qph.active_flag = G_YES
and qpq.active_flag = G_YES
and qplatq.distinct_qualifier_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
union all
select /*+ ORDERED USE_NL(qpq qplh qph) index(qpq qp_qualifiers_n6) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) l_outer_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq ,
qp_list_header_phases qplh,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qplh.list_header_id
and qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and qplh.pricing_phase_id = p_pricing_phase_id
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.comparison_operator_code = G_OPERATOR_BETWEEN
and qpq.qualifier_datatype = G_NUMERIC
and qpq.search_ind = 1
and qpq.list_line_id <> -1
and ( qpq.list_header_id in (SELECT distinct list_header_id
FROM qp_preq_qual_tmp
WHERE pricing_phase_id = p_pricing_phase_id
AND pricing_status_code = G_STATUS_UNCHANGED)
or
qpq.header_quals_exist_flag = G_NO)
and (not exists (select 'x' --3520634 start
from qp_pricing_attributes qp_pa -- if no product defined,select the header
where qp_pa.list_line_id = qpq.list_line_id
and rownum = 1)
OR -- If product defined on line level,select headers for which product matches.
exists (select /*+ ORDERED USE_NL(qpprod) */ 'x'
FROM qp_pricing_attributes c, qp_npreq_line_attrs_tmp qpprod
WHERE c.list_header_id = qpq.list_header_id
AND c.list_line_id = qpq.list_line_id
AND c.pricing_phase_id = p_pricing_phase_id
AND qpprod.context = c.product_attribute_context
AND qpprod.attribute = c.product_attribute
AND qpprod.value_from = c.product_attr_value
AND qpprod.pricing_status_code = G_STATUS_UNCHANGED
AND c.qualification_ind in (G_YES_PROD_LINE_QUAL_IND, G_YES_PROD_PRIC_LINE_QUAL_IND,
G_YES_PROD_HDR_LINE_QUAL_IND, G_YES_PRIC_HDR_LINE_QUAL_IND)
AND qpprod.attribute_type = G_PRODUCT_TYPE
AND c.excluder_flag = G_NO
--3683298 AND qpprod.line_index = qplatq.line_index
AND rownum = 1)
) --3520634 end
and qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qpq.list_type_code not in ('PRL','AGR')
and qph.active_flag = G_YES
and qpq.active_flag = G_YES
and qplatq.distinct_qualifier_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
union all
select /*+ ORDERED USE_NL(qpq qplh qph) index(qpq qp_qualifiers_n5) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) l_outer_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq ,
qp_list_header_phases qplh,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qplh.list_header_id
and qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and qplh.pricing_phase_id = p_pricing_phase_id
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.comparison_operator_code = G_OPERATOR_BETWEEN
and qpq.search_ind = 1
and qpq.list_line_id <> -1
and ( qpq.list_header_id in (SELECT distinct list_header_id
FROM qp_preq_qual_tmp
WHERE pricing_phase_id = p_pricing_phase_id
AND pricing_status_code = G_STATUS_UNCHANGED)
or
qpq.header_quals_exist_flag = G_NO)
and (not exists (select 'x' --3520634 start
from qp_pricing_attributes qp_pa -- if no product defined,select the header
where qp_pa.list_line_id = qpq.list_line_id
and rownum = 1)
OR -- If product defined on line level,select headers for which product matches.
exists (select /*+ ORDERED USE_NL(qpprod) */ 'x'
FROM qp_pricing_attributes c, qp_npreq_line_attrs_tmp qpprod
WHERE c.list_header_id = qpq.list_header_id
AND c.list_line_id = qpq.list_line_id
AND c.pricing_phase_id = p_pricing_phase_id
AND qpprod.context = c.product_attribute_context
AND qpprod.attribute = c.product_attribute
AND qpprod.value_from = c.product_attr_value
AND qpprod.pricing_status_code = G_STATUS_UNCHANGED
AND c.qualification_ind in (G_YES_PROD_LINE_QUAL_IND, G_YES_PROD_PRIC_LINE_QUAL_IND,
G_YES_PROD_HDR_LINE_QUAL_IND, G_YES_PRIC_HDR_LINE_QUAL_IND)
AND qpprod.attribute_type = G_PRODUCT_TYPE
AND c.excluder_flag = G_NO
--3683298 AND qpprod.line_index = qplatq.line_index
AND rownum = 1)
) --3520634 end
and qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y)
--and decode(qpq.qualifier_datatype,G_VARCHAR,qplatq.value_from,G_DATE_X,qplatq.value_from,
-- G_DATE_Y,qplatq.value_from,null)
and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qpq.list_type_code not in ('PRL','AGR')
and qph.active_flag = G_YES
and qpq.active_flag = G_YES
and qplatq.distinct_qualifier_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
union all
select /*+ ORDERED USE_NL(qpq qplh qph) index(qpq qp_qualifiers_n5) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) l_outer_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq ,
qp_list_header_phases qplh,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qplh.list_header_id
and qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and qplh.pricing_phase_id = p_pricing_phase_id
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.comparison_operator_code = 'NOT ='
and qpq.qualifier_attr_value <> qplatq.value_from
and qpq.search_ind = 1
and qpq.list_line_id <> -1
and ( qpq.list_header_id in (SELECT distinct list_header_id
FROM qp_preq_qual_tmp
WHERE pricing_phase_id = p_pricing_phase_id
AND pricing_status_code = G_STATUS_UNCHANGED)
or
qpq.header_quals_exist_flag = G_NO)
and (not exists (select 'x' --3520634 start
from qp_pricing_attributes qp_pa -- if no product defined,select the header
where qp_pa.list_line_id = qpq.list_line_id
and rownum = 1)
OR -- If product defined on line level,select headers for which product matches.
exists (select /*+ ORDERED USE_NL(qpprod) */ 'x'
FROM qp_pricing_attributes c, qp_npreq_line_attrs_tmp qpprod
WHERE c.list_header_id = qpq.list_header_id
AND c.list_line_id = qpq.list_line_id
AND c.pricing_phase_id = p_pricing_phase_id
AND qpprod.context = c.product_attribute_context
AND qpprod.attribute = c.product_attribute
AND qpprod.value_from = c.product_attr_value
AND qpprod.pricing_status_code = G_STATUS_UNCHANGED
AND c.qualification_ind in (G_YES_PROD_LINE_QUAL_IND, G_YES_PROD_PRIC_LINE_QUAL_IND,
G_YES_PROD_HDR_LINE_QUAL_IND, G_YES_PRIC_HDR_LINE_QUAL_IND)
AND qpprod.attribute_type = G_PRODUCT_TYPE
AND c.excluder_flag = G_NO
--3683298 AND qpprod.line_index = qplatq.line_index
AND rownum = 1)
) --3520634 end
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qpq.list_type_code not in ('PRL','AGR')
and qph.active_flag = G_YES
and qpq.active_flag = G_YES
and qplatq.distinct_qualifier_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')); -- Added for TCA
G_LIST_HEADER_ID_TBL_Q.delete;
G_LIST_LINE_ID_TBL_Q.delete;
G_VALIDATED_FLAG_TBL_Q.delete;
G_APPLIED_FLAG_TBL_Q.delete;
G_ATTRIBUTE_LEVEL_TBL_Q.delete;
G_ATTRIBUTE_TYPE_TBL_Q.delete;
G_CONTEXT_TBL_Q.delete;
G_ATTRIBUTE_TBL_Q.delete;
G_VALUE_FROM_TBL_Q.delete;
G_GROUPING_NO_TBL_Q.delete;
G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
G_DATATYPE_TBL_Q.delete;
G_SETUP_VALUE_FROM_TBL_Q.delete;
G_SETUP_VALUE_TO_TBL_Q.delete;
G_PRICING_ATTR_FLAG_TBL_Q.delete;
G_OPERATOR_TYPE_TBL_Q.delete;
G_QUALIFIER_TYPE_TBL_Q.delete;
G_LIST_TYPE_CODE_TBL_Q.delete;
G_ASK_FOR_FLAG_TBL_Q.delete;
G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
G_OTHERS_GROUP_CNT_TBL_Q.delete;
G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
G_SEARCH_IND_TBL_Q.delete;
G_PRICING_STATUS_CODE_TBL_Q.delete;
G_START_DATE_ACTIVE_TBL_Q.delete;
G_END_DATE_ACTIVE_TBL_Q.delete;
G_LINE_INDEX_TBL_Q.delete;
G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
G_LINE_TYPE_CODE_TBL_Q.delete;
G_PRICING_PHASE_ID_TBL_Q.delete;
G_UNIQUE_KEY_TBL_Q.delete;
G_START_DATE_ACTIVE_TBL_H_Q.delete;
G_END_DATE_ACTIVE_TBL_H_Q.delete;
G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
G_DERIVED_QUALIFIER_FLAG_TBL_Q.delete; -- Added for TCA
INSERT_QUAL(
G_LIST_HEADER_ID_TBL_Q
, G_LIST_LINE_ID_TBL_Q
, G_VALIDATED_FLAG_TBL_Q
, G_APPLIED_FLAG_TBL_Q
, G_ATTRIBUTE_LEVEL_TBL_Q
, G_ATTRIBUTE_TYPE_TBL_Q
, G_CONTEXT_TBL_Q
, G_ATTRIBUTE_TBL_Q
, G_VALUE_FROM_TBL_Q
, G_GROUPING_NO_TBL_Q
, G_QUALIFIER_PRECEDENCE_TBL_Q
, G_DATATYPE_TBL_Q
, G_SETUP_VALUE_FROM_TBL_Q
, G_SETUP_VALUE_TO_TBL_Q
, G_PRICING_ATTR_FLAG_TBL_Q
, G_OPERATOR_TYPE_TBL_Q
, G_LIST_TYPE_CODE_TBL_Q
, G_ASK_FOR_FLAG_TBL_Q
, G_QUALIFIER_TYPE_TBL_Q
, G_QUALIFIER_GROUP_CNT_TBL_Q
, G_OTHERS_GROUP_CNT_TBL_Q
, G_HEADER_QUALS_EXIST_FLG_TBL_Q
, G_SEARCH_IND_TBL_Q
, G_PRICING_STATUS_CODE_TBL_Q
, G_START_DATE_ACTIVE_TBL_Q
, G_END_DATE_ACTIVE_TBL_Q
, G_LINE_INDEX_TBL_Q
, G_PRICING_EFFECTIVE_DATE_TBL_Q
, G_START_DATE_ACTIVE_FIR_TBL_Q
, G_END_DATE_ACTIVE_FIR_TBL_Q
, G_LINE_TYPE_CODE_TBL_Q
, G_PRICING_PHASE_ID_TBL_Q
, G_UNIQUE_KEY_TBL_Q
, G_START_DATE_ACTIVE_TBL_H_Q
, G_END_DATE_ACTIVE_TBL_H_Q
, G_START_DATE_ACTIVE_SEC_TBL_Q
, G_END_DATE_ACTIVE_SEC_TBL_Q
, G_ACTIVE_DATE_FIR_TYPE_TBL_Q
, G_ACTIVE_DATE_SEC_TYPE_TBL_Q
, G_HEADER_LIMIT_EXISTS_TBL_Q
, G_DERIVED_QUALIFIER_FLAG_TBL_Q -- Added for TCA
, l_status_code
, l_status_text);
UPDATE QP_PREQ_QUAL_TMP a
SET a.PRICING_STATUS_CODE = G_DELETED_GRP
WHERE
a.list_line_id = '-1'
AND a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND a.PRICING_PHASE_ID = p_pricing_phase_id
and a.line_index is null
and not exists
(select 'x' from qp_preq_qual_tmp b where
b.list_header_id = a.list_header_id
and b.list_line_id <> '-1'
and b.pricing_phase_id = p_pricing_phase_id
and b.pricing_status_code = G_STATUS_UNCHANGED
and b.line_index is null)
and a.list_header_id in
(select list_header_id from
qp_list_header_phases
where
pricing_phase_id = p_pricing_phase_id
and qualifier_flag = 'Y');
engine_debug('Nitin - Delete headers - rows deleted '||sql%rowcount);
select /*+ ORDERED USE_NL(qpq qplh qph) index(qpq qp_qualifiers_n4) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) dynamic_sampling(1) l_header_outer_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq ,
qp_list_header_phases qplh,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qplh.list_header_id
and qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and qplh.pricing_phase_id = p_pricing_phase_id
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.qualifier_attr_value = qplatq.value_from
and qpq.comparison_operator_code = '='
and qpq.list_line_id = -1 -- only Header level quals
and qpq.search_ind = 1
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
and ((qph.ask_for_flag = G_YES and
qph.list_header_id in (SELECT list_header_id
FROM qp_npreq_line_attrs_tmp
WHERE attribute_type = 'QUALIFIER'
AND pricing_status_code = G_STATUS_UNCHANGED
AND validated_flag = G_NO
AND list_header_id IS NOT NULL))
OR qph.ask_for_flag = G_NO)
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qpq.list_type_code not in ('PRL','AGR')
and qph.active_flag = G_YES
and qpq.active_flag = G_YES
and qplatq.distinct_qualifier_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
union all
select /*+ ORDERED USE_NL(qpq qplh qph) index(qpq qp_qualifiers_n6) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) dynamic_sampling(1) l_header_outer_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq ,
qp_list_header_phases qplh,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qplh.list_header_id
and qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and qplh.pricing_phase_id = p_pricing_phase_id
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.comparison_operator_code = G_OPERATOR_BETWEEN
and qpq.qualifier_datatype = G_NUMERIC
and qpq.search_ind = 1
and qpq.list_line_id = -1 -- Header level quals
and qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
and ((qph.ask_for_flag = G_YES and
qph.list_header_id in (SELECT list_header_id
FROM qp_npreq_line_attrs_tmp
WHERE attribute_type = 'QUALIFIER'
AND pricing_status_code = G_STATUS_UNCHANGED
AND validated_flag = G_NO
AND list_header_id IS NOT NULL))
OR qph.ask_for_flag = G_NO)
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qpq.list_type_code not in ('PRL','AGR')
and qph.active_flag = G_YES
and qpq.active_flag = G_YES
and qplatq.distinct_qualifier_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
union all
select /*+ ORDERED USE_NL(qpq qplh qph) index(qpq qp_qualifiers_n5) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) dynamic_sampling(1) l_header_outer_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq ,
qp_list_header_phases qplh,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qplh.list_header_id
and qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and qplh.pricing_phase_id = p_pricing_phase_id
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.comparison_operator_code = G_OPERATOR_BETWEEN
and qpq.search_ind = 1
and qpq.list_line_id = -1 -- Header level quals
and qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y)
--and decode(qpq.qualifier_datatype,G_VARCHAR,qplatq.value_from,G_DATE_X,qplatq.value_from,
-- G_DATE_Y,qplatq.value_from,null)
and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
and ((qph.ask_for_flag = G_YES and
qph.list_header_id in (SELECT list_header_id
FROM qp_npreq_line_attrs_tmp
WHERE attribute_type = 'QUALIFIER'
AND pricing_status_code = G_STATUS_UNCHANGED
AND validated_flag = G_NO
AND list_header_id IS NOT NULL))
OR qph.ask_for_flag = G_NO)
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qpq.list_type_code not in ('PRL','AGR')
and qph.active_flag = G_YES
and qpq.active_flag = G_YES
and qplatq.distinct_qualifier_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
union all
select /*+ ORDERED USE_NL(qpq qplh qph) index(qpq qp_qualifiers_n5) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) dynamic_sampling(1) l_header_outer_qual_cur_mod */
qpq.list_header_id,
qpq.list_line_id list_line_id,
qpq.qualifier_group_cnt,
qpq.others_group_cnt,
qpq.header_quals_exist_flag,
qpq.search_ind,
G_NO validated_flag,
G_NO applied_flag,
G_LINE_LEVEL attribute_level,
G_QUALIFIER_TYPE attribute_type,
qplatq.context ,
qplatq.attribute ,
qplatq.value_from ,
qpq.qualifier_grouping_no qualifier_grouping_no ,
qpq.qualifier_precedence ,
qpq.qualifier_datatype,
qpq.qualifier_attr_value ,
qpq.qualifier_attr_value_to ,
qpq.start_date_active,
qpq.end_date_active,
G_NO pricing_attr_flag,
qpq.comparison_operator_code ,
qph.list_type_code,
qph.ask_for_flag,
qplatq.pricing_status_code,
'OHQ' ,
NULL line_index,
NULL pricing_effective_date,
qph.start_date_active_first start_date_active_first,
qph.end_date_active_first end_date_active_first,
NULL line_type_code,
p_pricing_phase_id pricing_phase_id,
qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
qph.start_date_active start_date_active_h,
qph.end_date_active end_date_active_h,
qph.start_date_active_second start_date_active_second,
qph.end_date_active_second end_date_active_second,
qph.active_date_first_type,
qph.active_date_second_type,
qph.limit_exists_flag,
qplatq.derived_qualifier_flag -- Added for TCA
from
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq ,
qp_list_header_phases qplh,
qp_list_headers_b qph,
qp_price_req_sources_v qprs
where
qpq.list_header_id = qplh.list_header_id
and qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and qplh.pricing_phase_id = p_pricing_phase_id
and qpq.qualifier_context = qplatq.context
and qpq.qualifier_attribute = qplatq.attribute
and qpq.comparison_operator_code = 'NOT ='
and qpq.qualifier_attr_value <> qplatq.value_from
and qpq.search_ind = 1
and qpq.list_line_id = -1 -- Header Level Quals
and ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
OR
qph.currency_code IS NULL) -- optional currency
and ((qph.ask_for_flag = G_YES and
qph.list_header_id in (SELECT list_header_id
FROM qp_npreq_line_attrs_tmp
WHERE attribute_type = 'QUALIFIER'
AND pricing_status_code = G_STATUS_UNCHANGED
AND validated_flag = G_NO
AND list_header_id IS NOT NULL))
OR qph.ask_for_flag = G_NO)
and ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and qph.list_type_code not in ('PRL','AGR')
and qpq.list_type_code not in ('PRL','AGR')
and qph.active_flag = G_YES
and qpq.active_flag = G_YES
and qplatq.distinct_qualifier_flag = G_YES
and qpq.list_header_id = qph.list_header_id
and qplatq.pricing_status_code = G_STATUS_UNCHANGED
and qplatq.attribute_type = G_QUALIFIER_TYPE
and qprs.request_type_code = G_REQUEST_TYPE_CODE
and qph.source_system_code = qprs.source_system_code
and ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')); -- Added for TCA
G_LIST_HEADER_ID_TBL_Q.delete;
G_LIST_LINE_ID_TBL_Q.delete;
G_VALIDATED_FLAG_TBL_Q.delete;
G_APPLIED_FLAG_TBL_Q.delete;
G_ATTRIBUTE_LEVEL_TBL_Q.delete;
G_ATTRIBUTE_TYPE_TBL_Q.delete;
G_CONTEXT_TBL_Q.delete;
G_ATTRIBUTE_TBL_Q.delete;
G_VALUE_FROM_TBL_Q.delete;
G_GROUPING_NO_TBL_Q.delete;
G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
G_DATATYPE_TBL_Q.delete;
G_SETUP_VALUE_FROM_TBL_Q.delete;
G_SETUP_VALUE_TO_TBL_Q.delete;
G_PRICING_ATTR_FLAG_TBL_Q.delete;
G_OPERATOR_TYPE_TBL_Q.delete;
G_QUALIFIER_TYPE_TBL_Q.delete;
G_LIST_TYPE_CODE_TBL_Q.delete;
G_ASK_FOR_FLAG_TBL_Q.delete;
G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
G_OTHERS_GROUP_CNT_TBL_Q.delete;
G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
G_SEARCH_IND_TBL_Q.delete;
G_PRICING_STATUS_CODE_TBL_Q.delete;
G_START_DATE_ACTIVE_TBL_Q.delete;
G_END_DATE_ACTIVE_TBL_Q.delete;
G_LINE_INDEX_TBL_Q.delete;
G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
G_LINE_TYPE_CODE_TBL_Q.delete;
G_PRICING_PHASE_ID_TBL_Q.delete;
G_UNIQUE_KEY_TBL_Q.delete;
G_START_DATE_ACTIVE_TBL_H_Q.delete;
G_END_DATE_ACTIVE_TBL_H_Q.delete;
G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
G_DERIVED_QUALIFIER_FLAG_TBL_Q.delete; -- Added for TCA
INSERT_QUAL(
G_LIST_HEADER_ID_TBL_Q
, G_LIST_LINE_ID_TBL_Q
, G_VALIDATED_FLAG_TBL_Q
, G_APPLIED_FLAG_TBL_Q
, G_ATTRIBUTE_LEVEL_TBL_Q
, G_ATTRIBUTE_TYPE_TBL_Q
, G_CONTEXT_TBL_Q
, G_ATTRIBUTE_TBL_Q
, G_VALUE_FROM_TBL_Q
, G_GROUPING_NO_TBL_Q
, G_QUALIFIER_PRECEDENCE_TBL_Q
, G_DATATYPE_TBL_Q
, G_SETUP_VALUE_FROM_TBL_Q
, G_SETUP_VALUE_TO_TBL_Q
, G_PRICING_ATTR_FLAG_TBL_Q
, G_OPERATOR_TYPE_TBL_Q
, G_LIST_TYPE_CODE_TBL_Q
, G_ASK_FOR_FLAG_TBL_Q
, G_QUALIFIER_TYPE_TBL_Q
, G_QUALIFIER_GROUP_CNT_TBL_Q
, G_OTHERS_GROUP_CNT_TBL_Q
, G_HEADER_QUALS_EXIST_FLG_TBL_Q
, G_SEARCH_IND_TBL_Q
, G_PRICING_STATUS_CODE_TBL_Q
, G_START_DATE_ACTIVE_TBL_Q
, G_END_DATE_ACTIVE_TBL_Q
, G_LINE_INDEX_TBL_Q
, G_PRICING_EFFECTIVE_DATE_TBL_Q
, G_START_DATE_ACTIVE_FIR_TBL_Q
, G_END_DATE_ACTIVE_FIR_TBL_Q
, G_LINE_TYPE_CODE_TBL_Q
, G_PRICING_PHASE_ID_TBL_Q
, G_UNIQUE_KEY_TBL_Q
, G_START_DATE_ACTIVE_TBL_H_Q
, G_END_DATE_ACTIVE_TBL_H_Q
, G_START_DATE_ACTIVE_SEC_TBL_Q
, G_END_DATE_ACTIVE_SEC_TBL_Q
, G_ACTIVE_DATE_FIR_TYPE_TBL_Q
, G_ACTIVE_DATE_SEC_TYPE_TBL_Q
, G_HEADER_LIMIT_EXISTS_TBL_Q
, G_DERIVED_QUALIFIER_FLAG_TBL_Q -- Added for TCA
, l_status_code
, l_status_text);
G_LINE_INDEX_tbl.delete;
G_USAGE_PRICING_TYPE_TBL.delete;
G_LINE_CATEGORY_TBL.delete;
G_LINE_CATEGORY_DEF_TBL.delete;
G_CONTRACT_START_DATE_TBL.delete; /* shulin */
G_CONTRACT_END_DATE_TBL.delete; /* shulin */
G_LINE_UNIT_PRICE_TBL.delete; /* shu_latest */
G_CONTRACT_START_DATE_DEF_TBL.delete; /* shulin */
G_CONTRACT_END_DATE_DEF_TBL.delete; /* shulin */
G_LINE_UNIT_PRICE_DEF_TBL.delete; /* shu_latest */
G_CHARGE_PERIODICITY_CODE_TBL.delete;
G_CURRENCY_HEADER_ID_DEF_TBL.delete; /* vivek */
G_SELLING_ROUNDING_DEF_TBL.delete; /* vivek */
G_ORDER_CURRENCY_DEF_TBL.delete; /* vivek */
G_PRICING_EFF_DATE_DEF_TBL.delete; /* vivek */
G_BASE_CURRENCY_DEF_TBL.delete; /* vivek */
G_CURRENCY_DETAIL_ID_DEF_TBL.delete; /* sunilpandey */
G_LINE_DETAIL_INDEX_tbl.delete;
G_ATTRIBUTE_LEVEL_tbl.delete;
G_ATTRIBUTE_TYPE_tbl.delete;
G_LIST_HEADER_ID_tbl.delete;
G_LIST_LINE_ID_tbl.delete;
G_CONTEXT_tbl.delete;
G_ATTRIBUTE_tbl.delete;
G_VALUE_FROM_tbl.delete;
G_SETUP_VALUE_FROM_tbl.delete;
G_VALUE_TO_tbl.delete;
G_SETUP_VALUE_TO_tbl.delete;
G_GROUPING_NUMBER_tbl.delete;
G_NO_QUALIFIERS_IN_GRP_tbl.delete;
G_COMPARISON_OPERATOR_TYPE_tbl.delete;
G_VALIDATED_FLAG_tbl.delete;
G_APPLIED_FLAG_tbl.delete;
G_PRICING_STATUS_CODE_tbl.delete;
G_PRICING_STATUS_TEXT_tbl.delete;
G_QUALIFIER_PRECEDENCE_tbl.delete;
G_DATATYPE_tbl.delete;
G_PRICING_ATTR_FLAG_tbl.delete;
G_QUALIFIER_TYPE_tbl.delete;
G_product_uom_code_tbl.delete;
G_ROUNDING_FLAG_TBL.delete;
G_LINE_TYPE_CODE_TBL.delete ;
G_PRICING_EFFECTIVE_DATE_TBL.delete ;
G_ACTIVE_DATE_FIRST_TBL.delete ;
G_ACTIVE_DATE_FIRST_TYPE_TBL.delete ;
G_ACTIVE_DATE_SECOND_TBL.delete ;
G_ACTIVE_DATE_SECOND_TYPE_TBL.delete ;
G_LINE_QUANTITY_TBL.delete ;
G_LINE_UOM_CODE_TBL.delete ;
G_REQUEST_TYPE_CODE_TBL.delete ;
G_PRICED_QUANTITY_TBL.delete ;
G_UOM_QUANTITY_TBL.delete ;
G_PRICED_UOM_CODE_TBL.delete ;
G_CURRENCY_CODE_TBL.delete ;
G_UNIT_PRICE_TBL.delete ;
G_PERCENT_PRICE_TBL.delete ;
G_ADJUSTED_UNIT_PRICE_TBL.delete ;
G_UPD_ADJUSTED_UNIT_PRICE_TBL.delete;
G_PROCESSED_FLAG_TBL.delete ;
G_PRICE_FLAG_TBL.delete ;
G_LINE_ID_TBL.delete ;
G_PROCESSING_ORDER_TBL.delete ;
G_EXCLUDER_FLAG_TBL.delete ;
G_PRICE_REQUEST_CODE_TBL.delete;
G_HEADER_LIMIT_EXISTS_TBL.delete;
G_LINE_LIMIT_EXISTS_TBL.delete;
G_CHARGE_TYPE_CODE_TBL.delete;
G_CHARGE_SUBTYPE_CODE_TBL.delete;
G_CURRENCY_HEADER_ID_TBL.delete; /* vivek */
G_SELLING_ROUNDING_TBL.delete; /* vivek */
G_ORDER_CURRENCY_TBL.delete; /* vivek */
G_BASE_CURRENCY_CODE_TBL.delete; /* vivek */
G_CURRENCY_DETAIL_ID_TBL.delete; /* sunilpandey */
G_ACCUM_CONTEXT_TBL.delete; -- accum range break
G_ACCUM_ATTRIBUTE_TBL.delete; -- accum range break
G_ACCUM_FLAG_TBL.delete; -- accum range break
G_UPDATED_FLAG_TBL.delete; -- 3215497
G_CALCULATION_CODE_TBL.delete; -- 3215497
G_CHANGE_REASON_CODE_TBL.delete; -- 3215497
G_CHANGE_REASON_TEXT_TBL.delete; -- 3215497
G_PROCESS_CODE_TBL.delete; -- 3215497
G_LINE_DETAIL_TYPE_CODE_TBL.delete ;
G_PRICE_BREAK_TYPE_CODE_TBL.delete ;
G_LIST_PRICE_TBL.delete ;
G_LIST_LINE_TYPE_TBL.delete ;
G_LIST_TYPE_CODE_TBL.delete ;
G_CREATED_FROM_SQL_TBL.delete ;
G_PRICING_GROUP_SEQUENCE_TBL.delete ;
G_PRICING_PHASE_ID_TBL.delete ;
G_OPERAND_CALCULATION_CODE_TBL.delete ;
G_OPERAND_VALUE_TBL.delete ;
G_SUBSTITUTION_TYPE_CODE_TBL.delete ;
G_SUBSTITUTION_VALUE_FROM_TBL.delete ;
G_SUBSTITUTION_VALUE_TO_TBL.delete ;
G_ASK_FOR_FLAG_TBL.delete ;
G_PRICE_FORMULA_ID_TBL.delete ;
G_PRODUCT_PRECEDENCE_TBL.delete ;
G_INCOMP_GRP_CODE_TBL.delete ;
G_AUTOMATIC_FLAG_TBL.delete ;
G_OVERRIDE_FLAG_TBL.delete ;
G_PRIMARY_UOM_FLAG_TBL.delete ;
G_PRINT_ON_INVOICE_FLAG_TBL.delete ;
G_MODIFIER_LEVEL_CODE_TBL.delete ;
G_BENEFIT_QTY_TBL.delete ;
G_BENEFIT_UOM_CODE_TBL.delete ;
G_LIST_LINE_NO_TBL.delete ;
G_ACCRUAL_FLAG_TBL.delete ;
G_ACCRUAL_CONVERSION_RATE_TBL.delete ;
G_ESTIM_ACCRUAL_RATE_TBL.delete ;
G_RECURRING_FLAG_TBL.delete ;
G_QUALIFIERS_EXIST_FLAG_TBL.delete;
G_PRICING_ATTRS_EXIST_FLAG_TBL.delete;
G_SELECTED_VOLUME_ATTR_TBL.delete ;
G_ROUNDING_FACTOR_TBL.delete ;
G_LINE_INDEX_LD_TBL.delete ;
G_LINE_DETAIL_INDEX_LD_TBL.delete ;
G_LIST_HEADER_ID_LD_TBL.delete ;
G_LIST_LINE_ID_LD_TBL.delete ;
G_PRICING_STATUS_CODE_LD_TBL.delete ;
G_PRICING_STATUS_TEXT_LD_TBL.delete ;
G_APPLIED_FLAG_LD_TBL.delete;
G_PROCESSED_FLAG_LD_TBL.delete;
G_LINE_INDEX_l_TBL.delete;
G_LINE_DETAIL_INDEX_l_TBL.delete;
G_PRICING_STATUS_CODE_L_TBL.delete;
G_PRICING_STATUS_TEXT_L_TBL.delete;
G_LIST_HEADER_ID_TBL_Q.delete;
G_LIST_LINE_ID_TBL_Q.delete;
G_LINE_INDEX_TBL_Q.delete;
G_VALIDATED_FLAG_TBL_Q.delete;
G_APPLIED_FLAG_TBL_Q.delete;
G_START_DATE_ACTIVE_TBL_Q.delete;
G_END_DATE_ACTIVE_TBL_Q.delete;
G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
G_LINE_TYPE_CODE_TBL_Q.delete;
G_ATTRIBUTE_LEVEL_TBL_Q.delete;
G_ATTRIBUTE_TYPE_TBL_Q.delete;
G_CONTEXT_TBL_Q.delete;
G_ATTRIBUTE_TBL_Q.delete;
G_VALUE_FROM_TBL_Q.delete;
G_GROUPING_NO_TBL_Q.delete;
G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
G_DATATYPE_TBL_Q.delete;
G_SETUP_VALUE_FROM_TBL_Q.delete;
G_SETUP_VALUE_TO_TBL_Q.delete;
G_PRICING_ATTR_FLAG_TBL_Q.delete;
G_OPERATOR_TYPE_TBL_Q.delete;
G_CURRENCY_CODE_TBL_Q.delete;
G_ASK_FOR_FLAG_TBL_Q.delete;
G_LIST_TYPE_CODE_TBL_Q.delete;
G_QUALIFIER_TYPE_TBL_Q.delete;
G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
G_OTHERS_GROUP_CNT_TBL_Q.delete;
G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
G_SEARCH_IND_TBL_Q.delete;
G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
G_LIST_LINE_NO_TBL_Q.delete;
G_LINE_INDEX_TBL_P.delete;
G_LINE_DETAIL_INDEX_TBL_P.delete;
G_LIST_HEADER_ID_TBL_P.delete;
G_LIST_LINE_ID_TBL_P.delete;
G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
G_LIST_PRICE_TBL_P.delete;
G_LIST_LINE_TYPE_TBL_P.delete;
G_LIST_TYPE_CODE_TBL_P.delete;
G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
G_PRICING_PHASE_ID_TBL_P.delete;
G_OPER_CALCULATION_CODE_TBL_P.delete;
G_OPERAND_VALUE_TBL_P.delete;
G_ASK_FOR_FLAG_TBL_P.delete;
G_PRICE_FORMULA_ID_TBL_P.delete;
G_PRODUCT_PRECEDENCE_TBL_P.delete;
G_INCOMP_GRP_CODE_TBL_P.delete;
G_AUTOMATIC_FLAG_TBL_P.delete;
G_OVERRIDE_FLAG_TBL_P.delete;
G_PRIMARY_UOM_FLAG_TBL_P.delete;
G_PRINT_ON_INVOICE_FLAG_TBL_P.delete;
G_MODIFIER_LEVEL_CODE_TBL_P.delete;
G_BENEFIT_QTY_TBL_P.delete;
G_BENEFIT_UOM_CODE_TBL_P.delete;
G_LIST_LINE_NO_TBL_P.delete;
G_ACCRUAL_FLAG_TBL_P.delete;
G_ACCR_CONVERSION_RATE_TBL_P.delete;
G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
G_ATTRIBUTE_LEVEL_TBL_P.delete;
G_ATTRIBUTE_TYPE_TBL_P.delete;
G_CONTEXT_TBL_P.delete;
G_ATTRIBUTE_TBL_P.delete;
G_VALUE_FROM_TBL_P.delete;
G_SETUP_VALUE_FROM_TBL_P.delete;
G_VALIDATED_FLAG_TBL_P.delete;
G_APPLIED_FLAG_TBL_P.delete;
G_PRICING_ATTR_FLAG_TBL_P.delete;
G_GROUPING_NUMBER_TBL_P.delete;
G_QUALIFIER_PRECEDENCE_TBL_P.delete;
G_EXCLUDER_FLAG_TBL_P.delete;
G_PRODUCT_UOM_CODE_TBL_P.delete;
G_QUALIFIER_TYPE_TBL_P.delete;
G_ROUNDING_FACTOR_TBL_P.delete;
G_HEADER_LIMIT_EXISTS_TBL_P.delete;
G_LINE_LIMIT_EXISTS_TBL_P.delete;
G_CHARGE_TYPE_CODE_TBL_P.delete;
G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
G_CURRENCY_HEADER_ID_TBL_P.delete; /* vivek */
G_SELLING_ROUNDING_TBL_P.delete; /* vivek */
G_ORDER_CURRENCY_TBL_P.delete; /* vivek */
G_PRICING_EFFECTIVE_DATE_TBL_P.delete; /* vivek */
G_BASE_CURRENCY_CODE_TBL_P.delete; /* vivek */
G_CURRENCY_DETAIL_ID_TBL_P.delete; /* sunilpandey */
G_ACCUM_CONTEXT_TBL_P.delete; -- accum range break
G_ACCUM_ATTRIBUTE_TBL_P.delete; -- accum range break
G_ACCUM_FLAG_TBL_P.delete; -- accum range break
G_ATTRIBUTE_LEVEL_TBL_PR.delete;
G_ATTRIBUTE_TYPE_TBL_PR.delete;
G_CONTEXT_TBL_PR.delete;
G_ATTRIBUTE_TBL_PR.delete;
G_VALUE_FROM_TBL_PR.delete;
G_OPERATOR_TYPE_TBL_PR.delete;
G_SETUP_VALUE_FROM_TBL_PR.delete;
G_SETUP_VALUE_TO_TBL_PR.delete;
G_DATATYPE_TBL_PR.delete;
G_LINE_INDEX_TBL_B.delete;
G_LIST_HEADER_ID_TBL_B.delete;
G_LIST_LINE_ID_TBL_B.delete;
G_PRICE_BREAK_TYPE_CODE_TBL_B.delete;
G_LIST_PRICE_TBL_B.delete;
G_LIST_LINE_TYPE_TBL_B.delete;
G_LIST_TYPE_CODE_TBL_B.delete;
G_PRICING_GROUP_SEQUENCE_TBL_B.delete;
G_PRICING_PHASE_ID_TBL_B.delete;
G_OPER_CALCULATION_CODE_TBL_B.delete;
G_OPERAND_VALUE_TBL_B.delete;
G_ASK_FOR_FLAG_TBL_B.delete;
G_PRICE_FORMULA_ID_TBL_B.delete;
G_PRODUCT_PRECEDENCE_TBL_B.delete;
G_INCOMP_GRP_CODE_TBL_B.delete;
G_AUTOMATIC_FLAG_TBL_B.delete;
G_OVERRIDE_FLAG_TBL_B.delete;
G_PRIMARY_UOM_FLAG_TBL_B.delete;
G_PRINT_ON_INVOICE_FLAG_TBL_B.delete;
G_MODIFIER_LEVEL_CODE_TBL_B.delete;
G_BENEFIT_QTY_TBL_B.delete;
G_BENEFIT_UOM_CODE_TBL_B.delete;
G_LIST_LINE_NO_TBL_B.delete;
G_ACCRUAL_FLAG_TBL_B.delete;
G_ACCR_CONVERSION_RATE_TBL_B.delete;
G_ESTIM_ACCRUAL_RATE_TBL_B.delete;
G_LINE_INDEX_TBL_G.delete;
G_LIST_HEADER_ID_TBL_G.delete;
G_LIST_LINE_ID_TBL_G.delete;
G_NO_OF_PATTS_IN_GRP_TBL_G.delete;
G_PRICING_PHASE_ID_TBL_A.delete;
G_INCOMP_GRP_CODE_TBL_A.delete;
G_LINE_DETAIL_TYPE_CODE_TBL_A.delete;
G_MODIFIER_LEVEL_CODE_TBL_A.delete;
G_PRIMARY_UOM_FLAG_TBL_A.delete;
|Update Processing_Order
|For service lines, two request lines might be related to each other and one
|might be the parent and the other might be child.
|This relationship are passed by the calling application
|thru rltd_tbl structure. From this structure, we can find
|the which is the parent and child. Parent lines
|need to be process before the child lines. This information
|is store in processing_order column in temp by this procedure
+---------------------------------------------------------------------
*/
PROCEDURE Update_Processing_Order (x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
/*
INDX,QP_PREQ_GRP.Update_Processing_Order.l_Service_Cur,-No Index Used-,NA,NA
*/
CURSOR l_Service_Cur IS
SELECT LINE_INDEX,
RELATED_LINE_INDEX
FROM qp_npreq_rltd_lines_tmp
WHERE LINE_INDEX IS NOT NULL
AND RELATED_LINE_INDEX IS NOT NULL
AND RELATIONSHIP_TYPE_CODE = G_SERVICE_LINE;
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.Update_Processing_Order';
INDX,QP_PREQ_GRP.Update_Processing_Order.Update_Processing_Order_upd1,qp_npreq_lines_tmp_U1,LINE_INDEX,1
*/
-- julin [3805113]: using bulk collect and update
OPEN l_Service_Cur;
UPDATE qp_npreq_lines_tmp --upd1
SET PROCESSING_ORDER = 1
WHERE LINE_INDEX = l_line_index_tbl(I);
INDX,QP_PREQ_GRP.Update_Processing_Order.Update_Processing_Order_upd2,qp_npreq_lines_tmp_U1,LINE_INDEX,1
*/
-- julin [3805113]: bulk update
FORALL I IN l_related_line_index_tbl.first..l_related_line_index_tbl.last
UPDATE qp_npreq_lines_tmp --upd2
SET PROCESSING_ORDER = 2
WHERE LINE_INDEX = l_related_line_index_tbl(I);
for cl in (select line_index from qp_npreq_lines_tmp line
where processing_order = 2
and (contract_start_date is not null or contract_end_date is not null)
and uom_quantity is null)
loop
G_service_line_ind_tbl(cl.line_index) := cl.line_index;
UPDATE qp_npreq_lines_tmp --upd1
SET PRICING_STATUS_CODE = p_status_code,
PRICING_STATUS_TEXT = substr(p_status_text,1,2000)
WHERE LINE_INDEX = p_line_index;
UPDATE qp_npreq_ldets_tmp --upd2
SET PRICING_STATUS_CODE = p_status_code,
PRICING_STATUS_TEXT =
substr(pricing_status_code||'+'||p_status_code||'+'||p_status_text,1,2000)
WHERE LINE_INDEX = p_line_index
AND PRICING_STATUS_CODE <> G_STATUS_UNCHANGED;
UPDATE /*+ dynamic_sampling(1) */ qp_npreq_line_attrs_tmp --upd3
SET PRICING_STATUS_CODE = p_status_code,
PRICING_STATUS_TEXT = substr(p_status_text,1,240)
WHERE LINE_INDEX = p_line_index
AND PRICING_STATUS_CODE <> G_STATUS_UNCHANGED;
UPDATE qp_npreq_lines_tmp --upd1
SET PROCESSED_CODE = p_processed_code
WHERE LINE_INDEX = p_line_index;
UPDATE qp_npreq_line_attrs_tmp --upd2
SET PROCESSED_CODE = p_processed_code
WHERE LINE_INDEX = p_line_index;
|PROCEDURE DELETE_ALL_LINES
|This procedure mark qp_npreq_line_attrs_tmp and qp_npreq_ldets_tmp
|for delete. And mark qp_preq_lines status code as
|whatever calling procedure wanted. Which is usually
|not a 'Delete' because record in qp_npreq_lines_tmp
|is the only one which communicates with outside
|world (order managment for example).
+----------------------------------------------------
*/
PROCEDURE DELETE_LINES(p_line_index IN NUMBER,
p_line_status_code IN VARCHAR2,
p_status_text IN VARCHAR2,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2) AS
l_routine VARCHAR2(240):='QP_PREQ_GRP.DELETE_LINES';
SET_STATUS_CODE(G_STATUS_DELETED,
p_status_text,
P_LINE_INDEX,
NULL,
'ATTRS',
l_error_status_code,
l_error_status_text);
SET_STATUS_CODE(G_STATUS_DELETED,
p_status_text,
P_LINE_INDEX,
NULL,
'LDETS',
l_error_status_code,
l_error_status_text);
END DELETE_LINES;
|Procedure Group INSERT_LINE_ATTRS2_AT
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_LINE_ATTRS2_AT
( p_LINE_INDEX_tbl number_type,
p_LINE_DETAIL_INDEX_tbl pls_integer_type ,
p_ATTRIBUTE_TYPE_tbl varchar_type,
p_CONTEXT_tbl varchar_type,
p_ATTRIBUTE_tbl varchar_type,
p_VALUE_FROM_tbl varchar_type,
p_VALUE_TO_tbl varchar_type,
p_VALIDATED_FLAG_tbl varchar_type,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
PRAGMA AUTONOMOUS_TRANSACTION;
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LINE_ATTRS2_AT';
INSERT INTO QP_INT_LINE_ATTRS_T
(LINE_INDEX,
LINE_DETAIL_INDEX,
ATTRIBUTE_TYPE,
CONTEXT,
ATTRIBUTE,
VALUE_FROM,
VALUE_TO,
VALIDATED_FLAG,
request_id)
VALUES (p_LINE_INDEX_tbl(i),
p_LINE_DETAIL_INDEX_tbl(i),
p_ATTRIBUTE_TYPE_tbl(i),
p_CONTEXT_tbl(i),
p_ATTRIBUTE_tbl(i),
p_VALUE_FROM_tbl(i),
p_VALUE_TO_tbl(i),
p_VALIDATED_FLAG_tbl(i),
l_request_id);
/*INSERT INTO QP_INT_LINE_ATTRS
(LINE_INDEX,
LINE_DETAIL_INDEX,
ATTRIBUTE_TYPE,
CONTEXT,
ATTRIBUTE,
VALUE_FROM,
VALUE_TO,
VALIDATED_FLAG)
VALUES (p_LINE_INDEX_tbl(i),
p_LINE_DETAIL_INDEX_tbl(i),
p_ATTRIBUTE_TYPE_tbl(i),
p_CONTEXT_tbl(i),
p_ATTRIBUTE_tbl(i),
p_VALUE_FROM_tbl(i),
p_VALUE_TO_tbl(i),
p_VALIDATED_FLAG_tbl(i));
|Procedure Group INSERT_LINE_ATTRS2
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_LINE_ATTRS2
( p_LINE_INDEX_tbl number_type,
p_LINE_DETAIL_INDEX_tbl pls_integer_type ,
p_ATTRIBUTE_TYPE_tbl varchar_type,
p_CONTEXT_tbl varchar_type,
p_ATTRIBUTE_tbl varchar_type,
p_VALUE_FROM_tbl varchar_type,
p_VALUE_TO_tbl varchar_type,
p_VALIDATED_FLAG_tbl varchar_type,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LINE_ATTRS2';
INSERT INTO qp_npreq_line_attrs_tmp
(LINE_INDEX,
LINE_DETAIL_INDEX,
ATTRIBUTE_TYPE,
CONTEXT,
ATTRIBUTE,
VALUE_FROM,
VALUE_TO,
VALIDATED_FLAG)
VALUES (p_LINE_INDEX_tbl(i),
p_LINE_DETAIL_INDEX_tbl(i),
p_ATTRIBUTE_TYPE_tbl(i),
p_CONTEXT_tbl(i),
p_ATTRIBUTE_tbl(i),
p_VALUE_FROM_tbl(i),
p_VALUE_TO_tbl(i),
p_VALIDATED_FLAG_tbl(i));
QP_PREQ_GRP.INSERT_LINE_ATTRS2_AT(
p_LINE_INDEX_tbl ,
p_LINE_DETAIL_INDEX_tbl ,
p_ATTRIBUTE_TYPE_tbl ,
p_CONTEXT_tbl ,
p_ATTRIBUTE_tbl ,
p_VALUE_FROM_tbl ,
p_VALUE_TO_tbl ,
p_VALIDATED_FLAG_tbl ,
x_status_code ,
x_status_text
);
| PROCEDURE INSERT_LINE_ATTRS
+-----------------------------------------------------------------------
*/
PROCEDURE INSERT_LINE_ATTRS
( p_LINE_INDEX IN PLS_INTEGER,
p_LINE_DETAIL_INDEX IN PLS_INTEGER :=NULL,
p_ATTRIBUTE_LEVEL IN VARCHAR2,
p_ATTRIBUTE_TYPE IN VARCHAR2,
p_LIST_HEADER_ID IN NUMBER :=NULL,
p_LIST_LINE_ID IN NUMBER :=NULL,
p_CONTEXT IN VARCHAR2,
p_ATTRIBUTE IN VARCHAR2,
p_VALUE_FROM IN VARCHAR2,
p_SETUP_VALUE_FROM IN VARCHAR2 :=NULL,
p_VALUE_TO IN VARCHAR2 :=NULL,
p_SETUP_VALUE_TO IN VARCHAR2 :=NULL,
p_GROUPING_NUMBER IN PLS_INTEGER :=NULL,
p_NO_QUALIFIERS_IN_GRP IN PLS_INTEGER :=NULL,
p_COMPARISON_OPERATOR_TYPE IN VARCHAR2 :=NULL,
p_VALIDATED_FLAG IN VARCHAR2 :=NULL,
p_APPLIED_FLAG IN VARCHAR2 :=NULL,
p_PRICING_STATUS_CODE IN VARCHAR2,
p_PRICING_STATUS_TEXT IN VARCHAR2 :=NULL,
p_QUALIFIER_PRECEDENCE IN PLS_INTEGER :=NULL,
p_DATATYPE IN VARCHAR2 :=NULL,
p_PRICING_ATTR_FLAG IN VARCHAR2 :=NULL,
p_QUALIFIER_TYPE IN VARCHAR2 :=NULL,
p_product_uom_code IN VARCHAR2 :=NULL,
p_excluder_flag IN VARCHAR2 :=NULL,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LINE_ATTRS';
INSERT INTO qp_npreq_line_attrs_tmp
(LINE_INDEX,
LINE_DETAIL_INDEX,
ATTRIBUTE_LEVEL,
ATTRIBUTE_TYPE,
LIST_HEADER_ID,
LIST_LINE_ID,
CONTEXT,
ATTRIBUTE,
VALUE_FROM,
SETUP_VALUE_FROM,
VALUE_TO,
SETUP_VALUE_TO,
GROUPING_NUMBER,
COMPARISON_OPERATOR_TYPE_CODE,
VALIDATED_FLAG,
APPLIED_FLAG,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
QUALIFIER_PRECEDENCE,
DATATYPE,
PRICING_ATTR_FLAG,
QUALIFIER_TYPE,
PRODUCT_UOM_CODE,
EXCLUDER_FLAG
)
VALUES (p_LINE_INDEX,
p_LINE_DETAIL_INDEX,
p_ATTRIBUTE_LEVEL,
p_ATTRIBUTE_TYPE,
p_LIST_HEADER_ID,
p_LIST_LINE_ID,
p_CONTEXT,
p_ATTRIBUTE,
p_VALUE_FROM,
p_SETUP_VALUE_FROM,
p_VALUE_TO,
p_SETUP_VALUE_TO,
p_GROUPING_NUMBER,
p_COMPARISON_OPERATOR_TYPE,
p_VALIDATED_FLAG,
p_APPLIED_FLAG,
p_PRICING_STATUS_CODE,
p_PRICING_STATUS_TEXT,
p_QUALIFIER_PRECEDENCE,
p_DATATYPE,
p_PRICING_ATTR_FLAG,
p_QUALIFIER_TYPE,
p_PRODUCT_UOM_CODE,
p_EXCLUDER_FLAG
);
| PROCEDURE INSERT_PRICE_LIST_ATTRS
+-----------------------------------------------------------------------
*/
PROCEDURE INSERT_PRICE_LIST_ATTRS
( p_LINE_INDEX_tbl pls_integer_type,
p_LINE_DETAIL_INDEX_tbl pls_integer_type ,
p_ATTRIBUTE_LEVEL_tbl varchar_type,
p_ATTRIBUTE_TYPE_tbl varchar_type,
p_LIST_HEADER_ID_tbl number_type,
p_LIST_LINE_ID_tbl number_type,
p_CONTEXT_tbl varchar_type,
p_ATTRIBUTE_tbl varchar_type,
p_VALUE_FROM_tbl varchar_type,
p_SETUP_VALUE_FROM_tbl varchar_type,
p_SETUP_VALUE_TO_tbl varchar_type,
p_GROUPING_NUMBER_tbl pls_integer_type,
p_COMPARISON_OPERATOR_TYPE_tbl varchar_type,
p_VALIDATED_FLAG_tbl varchar_type,
p_APPLIED_FLAG_tbl varchar_type,
p_PRICING_STATUS_CODE_tbl varchar_type,
p_PRICING_STATUS_TEXT_tbl varchar_type,
p_QUALIFIER_PRECEDENCE_tbl pls_integer_type,
p_DATATYPE_tbl varchar_type,
p_PRICING_ATTR_FLAG_tbl varchar_type,
p_QUALIFIER_TYPE_tbl varchar_type,
p_PRODUCT_UOM_CODE_TBL varchar_type,
p_EXCLUDER_FLAG_TBL varchar_type ,
p_PRICING_PHASE_ID_TBL pls_integer_type ,
p_INCOMPATABILITY_GRP_CODE_TBL varchar_type ,
p_LINE_DETAIL_TYPE_CODE_TBL varchar_type ,
p_MODIFIER_LEVEL_CODE_TBL varchar_type ,
p_PRIMARY_UOM_FLAG_TBL varchar_type ,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_PRICE_LIST_ATTRS';
INSERT INTO qp_npreq_line_attrs_tmp
(LINE_INDEX,
LINE_DETAIL_INDEX,
ATTRIBUTE_LEVEL,
ATTRIBUTE_TYPE,
LIST_HEADER_ID,
LIST_LINE_ID,
CONTEXT,
ATTRIBUTE,
VALUE_FROM,
SETUP_VALUE_FROM,
SETUP_VALUE_TO,
GROUPING_NUMBER,
COMPARISON_OPERATOR_TYPE_CODE,
VALIDATED_FLAG,
APPLIED_FLAG,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
QUALIFIER_PRECEDENCE,
DATATYPE,
PRICING_ATTR_FLAG,
QUALIFIER_TYPE,
PRODUCT_UOM_CODE,
EXCLUDER_FLAG,
PRICING_PHASE_ID,
INCOMPATABILITY_GRP_CODE,
LINE_DETAIL_TYPE_CODE,
MODIFIER_LEVEL_CODE,
PRIMARY_UOM_FLAG
)
VALUES (p_LINE_INDEX_tbl(i),
p_LINE_DETAIL_INDEX_tbl(i),
p_ATTRIBUTE_LEVEL_tbl(i),
p_ATTRIBUTE_TYPE_tbl(i),
p_LIST_HEADER_ID_tbl(i),
p_LIST_LINE_ID_tbl(i),
p_CONTEXT_tbl(i),
p_ATTRIBUTE_tbl(i),
p_VALUE_FROM_tbl(i),
p_SETUP_VALUE_FROM_tbl(i),
p_SETUP_VALUE_TO_tbl(i),
p_GROUPING_NUMBER_tbl(i),
p_COMPARISON_OPERATOR_TYPE_tbl(i),
p_VALIDATED_FLAG_tbl(i),
p_APPLIED_FLAG_tbl(i),
p_PRICING_STATUS_CODE_tbl(i),
p_PRICING_STATUS_TEXT_tbl(i),
p_QUALIFIER_PRECEDENCE_tbl(i),
p_DATATYPE_tbl(i),
p_PRICING_ATTR_FLAG_tbl(i),
p_QUALIFIER_TYPE_tbl(i),
p_PRODUCT_UOM_CODE_tbl(i),
p_EXCLUDER_FLAG_TBL(i),
p_PRICING_PHASE_ID_TBL(i),
p_INCOMPATABILITY_GRP_CODE_TBL(i),
p_LINE_DETAIL_TYPE_CODE_TBL(i),
p_MODIFIER_LEVEL_CODE_TBL(i),
p_PRIMARY_UOM_FLAG_TBL(i)
);
| PROCEDURE INSERT_LINE_ATTRS2_AT
+-----------------------------------------------------------------------
*/
PROCEDURE INSERT_LINE_ATTRS2_AT
( p_LINE_INDEX_tbl pls_integer_type,
p_LINE_DETAIL_INDEX_tbl pls_integer_type ,
p_ATTRIBUTE_LEVEL_tbl varchar_type,
p_ATTRIBUTE_TYPE_tbl varchar_type,
p_LIST_HEADER_ID_tbl number_type,
p_LIST_LINE_ID_tbl number_type,
p_CONTEXT_tbl varchar_type,
p_ATTRIBUTE_tbl varchar_type,
p_VALUE_FROM_tbl varchar_type,
p_SETUP_VALUE_FROM_tbl varchar_type,
p_VALUE_TO_tbl varchar_type,
p_SETUP_VALUE_TO_tbl varchar_type,
p_GROUPING_NUMBER_tbl pls_integer_type,
p_NO_QUALIFIERS_IN_GRP_tbl pls_integer_type,
p_COMPARISON_OPERATOR_TYPE_tbl varchar_type,
p_VALIDATED_FLAG_tbl varchar_type,
p_APPLIED_FLAG_tbl varchar_type,
p_PRICING_STATUS_CODE_tbl varchar_type,
p_PRICING_STATUS_TEXT_tbl varchar_type,
p_QUALIFIER_PRECEDENCE_tbl pls_integer_type,
p_DATATYPE_tbl varchar_type,
p_PRICING_ATTR_FLAG_tbl varchar_type,
p_QUALIFIER_TYPE_tbl varchar_type,
p_PRODUCT_UOM_CODE_TBL varchar_type,
p_EXCLUDER_FLAG_TBL varchar_type ,
p_PRICING_PHASE_ID_TBL pls_integer_type ,
p_INCOMPATABILITY_GRP_CODE_TBL varchar_type ,
p_LINE_DETAIL_TYPE_CODE_TBL varchar_type ,
p_MODIFIER_LEVEL_CODE_TBL varchar_type ,
p_PRIMARY_UOM_FLAG_TBL varchar_type ,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
PRAGMA AUTONOMOUS_TRANSACTION;
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LINE_ATTRS2_AT';
/*INSERT INTO QP_INT_LINE_ATTRS
( LINE_INDEX,
LINE_DETAIL_INDEX,
ATTRIBUTE_LEVEL,
ATTRIBUTE_TYPE,
LIST_HEADER_ID,
LIST_LINE_ID,
CONTEXT,
ATTRIBUTE,
VALUE_FROM,
SETUP_VALUE_FROM,
VALUE_TO,
SETUP_VALUE_TO,
GROUPING_NUMBER,
COMPARISON_OPERATOR_TYPE_CODE,
VALIDATED_FLAG,
APPLIED_FLAG,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
QUALIFIER_PRECEDENCE,
DATATYPE,
PRICING_ATTR_FLAG,
QUALIFIER_TYPE,
PRODUCT_UOM_CODE,
EXCLUDER_FLAG,
PRICING_PHASE_ID,
INCOMPATABILITY_GRP_CODE,
LINE_DETAIL_TYPE_CODE,
MODIFIER_LEVEL_CODE,
PRIMARY_UOM_FLAG
)
VALUES ( p_LINE_INDEX_tbl(i),
p_LINE_DETAIL_INDEX_tbl(i),
p_ATTRIBUTE_LEVEL_tbl(i),
p_ATTRIBUTE_TYPE_tbl(i),
--made changes to fix bug 2374591 ask for promotions not
--getting applied in performance code path
decode(p_CONTEXT_tbl(i)||p_ATTRIBUTE_tbl(i),G_LIST_HEADER_CONTEXT||G_PROMOTION_ATTRIBUTE,p_VALUE_FROM_tbl(i),p_LIST_HEADER_ID_tbl(i)),
decode(p_CONTEXT_tbl(i)||p_ATTRIBUTE_tbl(i),G_LIST_HEADER_CONTEXT||G_QUAL_ATTRIBUTE2,p_VALUE_FROM_tbl(i),p_LIST_LINE_ID_tbl(i)),
p_CONTEXT_tbl(i),
p_ATTRIBUTE_tbl(i),
p_VALUE_FROM_tbl(i),
p_SETUP_VALUE_FROM_tbl(i),
p_VALUE_TO_tbl(i),
p_SETUP_VALUE_TO_tbl(i),
p_GROUPING_NUMBER_tbl(i),
p_COMPARISON_OPERATOR_TYPE_tbl(i),
p_VALIDATED_FLAG_tbl(i),
p_APPLIED_FLAG_tbl(i),
p_PRICING_STATUS_CODE_tbl(i),
p_PRICING_STATUS_TEXT_tbl(i),
p_QUALIFIER_PRECEDENCE_tbl(i),
p_DATATYPE_tbl(i),
p_PRICING_ATTR_FLAG_tbl(i),
p_QUALIFIER_TYPE_tbl(i),
p_PRODUCT_UOM_CODE_tbl(i),
p_EXCLUDER_FLAG_TBL(i),
p_PRICING_PHASE_ID_TBL(i),
p_INCOMPATABILITY_GRP_CODE_TBL(i),
p_LINE_DETAIL_TYPE_CODE_TBL(i),
p_MODIFIER_LEVEL_CODE_TBL(i),
p_PRIMARY_UOM_FLAG_TBL(i)
);*/
INSERT INTO QP_INT_LINE_ATTRS_T
( LINE_INDEX,
LINE_DETAIL_INDEX,
ATTRIBUTE_LEVEL,
ATTRIBUTE_TYPE,
LIST_HEADER_ID,
LIST_LINE_ID,
CONTEXT,
ATTRIBUTE,
VALUE_FROM,
SETUP_VALUE_FROM,
VALUE_TO,
SETUP_VALUE_TO,
GROUPING_NUMBER,
COMPARISON_OPERATOR_TYPE_CODE,
VALIDATED_FLAG,
APPLIED_FLAG,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
QUALIFIER_PRECEDENCE,
DATATYPE,
PRICING_ATTR_FLAG,
QUALIFIER_TYPE,
PRODUCT_UOM_CODE,
EXCLUDER_FLAG,
PRICING_PHASE_ID,
INCOMPATABILITY_GRP_CODE,
LINE_DETAIL_TYPE_CODE,
MODIFIER_LEVEL_CODE,
PRIMARY_UOM_FLAG,
request_id
)
VALUES ( p_LINE_INDEX_tbl(i),
p_LINE_DETAIL_INDEX_tbl(i),
p_ATTRIBUTE_LEVEL_tbl(i),
p_ATTRIBUTE_TYPE_tbl(i),
--made changes to fix bug 2374591 ask for promotions not
--getting applied in performance code path
decode(p_CONTEXT_tbl(i)||p_ATTRIBUTE_tbl(i),G_LIST_HEADER_CONTEXT||G_PROMOTION_ATTRIBUTE,p_VALUE_FROM_tbl(i),p_LIST_HEADER_ID_tbl(i)),
decode(p_CONTEXT_tbl(i)||p_ATTRIBUTE_tbl(i),G_LIST_HEADER_CONTEXT||G_QUAL_ATTRIBUTE2,p_VALUE_FROM_tbl(i),p_LIST_LINE_ID_tbl(i)),
p_CONTEXT_tbl(i),
p_ATTRIBUTE_tbl(i),
p_VALUE_FROM_tbl(i),
p_SETUP_VALUE_FROM_tbl(i),
p_VALUE_TO_tbl(i),
p_SETUP_VALUE_TO_tbl(i),
p_GROUPING_NUMBER_tbl(i),
p_COMPARISON_OPERATOR_TYPE_tbl(i),
p_VALIDATED_FLAG_tbl(i),
p_APPLIED_FLAG_tbl(i),
p_PRICING_STATUS_CODE_tbl(i),
p_PRICING_STATUS_TEXT_tbl(i),
p_QUALIFIER_PRECEDENCE_tbl(i),
p_DATATYPE_tbl(i),
p_PRICING_ATTR_FLAG_tbl(i),
p_QUALIFIER_TYPE_tbl(i),
p_PRODUCT_UOM_CODE_tbl(i),
p_EXCLUDER_FLAG_TBL(i),
p_PRICING_PHASE_ID_TBL(i),
p_INCOMPATABILITY_GRP_CODE_TBL(i),
p_LINE_DETAIL_TYPE_CODE_TBL(i),
p_MODIFIER_LEVEL_CODE_TBL(i),
p_PRIMARY_UOM_FLAG_TBL(i),
l_request_id
);
| PROCEDURE INSERT_LINE_ATTRS2
+-----------------------------------------------------------------------
*/
PROCEDURE INSERT_LINE_ATTRS2
( p_LINE_INDEX_tbl pls_integer_type,
p_LINE_DETAIL_INDEX_tbl pls_integer_type ,
p_ATTRIBUTE_LEVEL_tbl varchar_type,
p_ATTRIBUTE_TYPE_tbl varchar_type,
p_LIST_HEADER_ID_tbl number_type,
p_LIST_LINE_ID_tbl number_type,
p_CONTEXT_tbl varchar_type,
p_ATTRIBUTE_tbl varchar_type,
p_VALUE_FROM_tbl varchar_type,
p_SETUP_VALUE_FROM_tbl varchar_type,
p_VALUE_TO_tbl varchar_type,
p_SETUP_VALUE_TO_tbl varchar_type,
p_GROUPING_NUMBER_tbl pls_integer_type,
p_NO_QUALIFIERS_IN_GRP_tbl pls_integer_type,
p_COMPARISON_OPERATOR_TYPE_tbl varchar_type,
p_VALIDATED_FLAG_tbl varchar_type,
p_APPLIED_FLAG_tbl varchar_type,
p_PRICING_STATUS_CODE_tbl varchar_type,
p_PRICING_STATUS_TEXT_tbl varchar_type,
p_QUALIFIER_PRECEDENCE_tbl pls_integer_type,
p_DATATYPE_tbl varchar_type,
p_PRICING_ATTR_FLAG_tbl varchar_type,
p_QUALIFIER_TYPE_tbl varchar_type,
p_PRODUCT_UOM_CODE_TBL varchar_type,
p_EXCLUDER_FLAG_TBL varchar_type ,
p_PRICING_PHASE_ID_TBL pls_integer_type ,
p_INCOMPATABILITY_GRP_CODE_TBL varchar_type ,
p_LINE_DETAIL_TYPE_CODE_TBL varchar_type ,
p_MODIFIER_LEVEL_CODE_TBL varchar_type ,
p_PRIMARY_UOM_FLAG_TBL varchar_type ,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LINE_ATTRS2';
INSERT INTO qp_npreq_line_attrs_tmp
(LINE_INDEX,
LINE_DETAIL_INDEX,
ATTRIBUTE_LEVEL,
ATTRIBUTE_TYPE,
LIST_HEADER_ID,
LIST_LINE_ID,
CONTEXT,
ATTRIBUTE,
VALUE_FROM,
SETUP_VALUE_FROM,
VALUE_TO,
SETUP_VALUE_TO,
GROUPING_NUMBER,
COMPARISON_OPERATOR_TYPE_CODE,
VALIDATED_FLAG,
APPLIED_FLAG,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
QUALIFIER_PRECEDENCE,
DATATYPE,
PRICING_ATTR_FLAG,
QUALIFIER_TYPE,
PRODUCT_UOM_CODE,
EXCLUDER_FLAG,
PRICING_PHASE_ID,
INCOMPATABILITY_GRP_CODE,
LINE_DETAIL_TYPE_CODE,
MODIFIER_LEVEL_CODE,
PRIMARY_UOM_FLAG
)
VALUES (p_LINE_INDEX_tbl(i),
p_LINE_DETAIL_INDEX_tbl(i),
p_ATTRIBUTE_LEVEL_tbl(i),
p_ATTRIBUTE_TYPE_tbl(i),
--made changes to fix bug 2374591 ask for promotions not
--getting applied in performance code path
decode(p_CONTEXT_tbl(i)||p_ATTRIBUTE_tbl(i),G_LIST_HEADER_CONTEXT||G_PROMOTION_ATTRIBUTE,p_VALUE_FROM_tbl(i),p_LIST_HEADER_ID_tbl(i)),
decode(p_CONTEXT_tbl(i)||p_ATTRIBUTE_tbl(i),G_LIST_HEADER_CONTEXT||G_QUAL_ATTRIBUTE2,p_VALUE_FROM_tbl(i),p_LIST_LINE_ID_tbl(i)),
p_CONTEXT_tbl(i),
p_ATTRIBUTE_tbl(i),
p_VALUE_FROM_tbl(i),
p_SETUP_VALUE_FROM_tbl(i),
p_VALUE_TO_tbl(i),
p_SETUP_VALUE_TO_tbl(i),
p_GROUPING_NUMBER_tbl(i),
p_COMPARISON_OPERATOR_TYPE_tbl(i),
p_VALIDATED_FLAG_tbl(i),
p_APPLIED_FLAG_tbl(i),
p_PRICING_STATUS_CODE_tbl(i),
p_PRICING_STATUS_TEXT_tbl(i),
p_QUALIFIER_PRECEDENCE_tbl(i),
p_DATATYPE_tbl(i),
p_PRICING_ATTR_FLAG_tbl(i),
p_QUALIFIER_TYPE_tbl(i),
p_PRODUCT_UOM_CODE_tbl(i),
p_EXCLUDER_FLAG_TBL(i),
p_PRICING_PHASE_ID_TBL(i),
p_INCOMPATABILITY_GRP_CODE_TBL(i),
p_LINE_DETAIL_TYPE_CODE_TBL(i),
p_MODIFIER_LEVEL_CODE_TBL(i),
p_PRIMARY_UOM_FLAG_TBL(i)
);
QP_PREQ_GRP.INSERT_LINE_ATTRS2_AT
( p_LINE_INDEX_tbl ,
p_LINE_DETAIL_INDEX_tbl ,
p_ATTRIBUTE_LEVEL_tbl ,
p_ATTRIBUTE_TYPE_tbl ,
p_LIST_HEADER_ID_tbl ,
p_LIST_LINE_ID_tbl ,
p_CONTEXT_tbl ,
p_ATTRIBUTE_tbl ,
p_VALUE_FROM_tbl ,
p_SETUP_VALUE_FROM_tbl ,
p_VALUE_TO_tbl ,
p_SETUP_VALUE_TO_tbl ,
p_GROUPING_NUMBER_tbl ,
p_NO_QUALIFIERS_IN_GRP_tbl ,
p_COMPARISON_OPERATOR_TYPE_tbl ,
p_VALIDATED_FLAG_tbl ,
p_APPLIED_FLAG_tbl ,
p_PRICING_STATUS_CODE_tbl ,
p_PRICING_STATUS_TEXT_tbl ,
p_QUALIFIER_PRECEDENCE_tbl ,
p_DATATYPE_tbl ,
p_PRICING_ATTR_FLAG_tbl ,
p_QUALIFIER_TYPE_tbl ,
p_PRODUCT_UOM_CODE_TBL ,
p_EXCLUDER_FLAG_TBL ,
p_PRICING_PHASE_ID_TBL ,
p_INCOMPATABILITY_GRP_CODE_TBL ,
p_LINE_DETAIL_TYPE_CODE_TBL ,
p_MODIFIER_LEVEL_CODE_TBL ,
p_PRIMARY_UOM_FLAG_TBL ,
x_status_code ,
x_status_text );
|PROCEDURE INSERT_LINES
+-----------------------------------------------------------------------
*/
PROCEDURE INSERT_LINES
(p_LINE_INDEX IN PLS_INTEGER,
p_LINE_TYPE_CODE IN VARCHAR2,
p_PRICING_EFFECTIVE_DATE IN DATE :=NULL,
p_ACTIVE_DATE_FIRST IN DATE :=NULL,
p_ACTIVE_DATE_FIRST_TYPE IN VARCHAR2 :=NULL,
p_ACTIVE_DATE_SECOND IN DATE :=NULL,
p_ACTIVE_DATE_SECOND_TYPE IN VARCHAR2 :=NULL,
p_LINE_QUANTITY IN NUMBER :=NULL,
p_LINE_UOM_CODE IN VARCHAR2:=NULL,
p_REQUEST_TYPE_CODE IN VARCHAR2:=NULL,
p_PRICED_QUANTITY IN NUMBER :=NULL,
p_PRICED_UOM_CODE IN VARCHAR2:=NULL,
p_CURRENCY_CODE IN VARCHAR2:=NULL,
p_UNIT_PRICE IN NUMBER:=NULL,
p_PERCENT_PRICE IN NUMBER:=NULL,
p_UOM_QUANTITY IN NUMBER :=NULL,
p_ADJUSTED_UNIT_PRICE IN NUMBER:=NULL,
p_PROCESSED_FLAG IN VARCHAR2:=NULL,
p_PRICE_FLAG IN VARCHAR2,
p_LINE_ID IN NUMBER:=NULL,
p_PROCESSING_ORDER IN PLS_INTEGER:=NULL,
p_PRICING_STATUS_CODE IN VARCHAR2,
p_PRICING_STATUS_TEXT IN VARCHAR2:=NULL,
p_ROUNDING_FLAG IN VARCHAR2:=NULL,
p_LINE_CATEGORY IN VARCHAR2:=NULL,
p_charge_periodicity_code IN VARCHAR2:=NULL,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2 )
AS
l_routine VARCHAR2(240):='Routine:QP_PREQ_GRP.INSERT_LINES';
INSERT INTO qp_npreq_lines_tmp
(LINE_INDEX,
LINE_TYPE_CODE,
PRICING_EFFECTIVE_DATE,
START_DATE_ACTIVE_FIRST,
ACTIVE_DATE_FIRST_TYPE,
START_DATE_ACTIVE_SECOND,
ACTIVE_DATE_SECOND_TYPE,
LINE_QUANTITY,
LINE_UOM_CODE,
REQUEST_TYPE_CODE,
PRICED_QUANTITY,
PRICED_UOM_CODE,
CURRENCY_CODE,
UNIT_PRICE,
PERCENT_PRICE,
UOM_QUANTITY,
ADJUSTED_UNIT_PRICE,
PROCESSED_FLAG,
PRICE_FLAG,
LINE_ID,
PROCESSING_ORDER,
ROUNDING_FLAG,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
LINE_CATEGORY,
CHARGE_PERIODICITY_CODE)
VALUES ( p_LINE_INDEX,
p_LINE_TYPE_CODE,
p_PRICING_EFFECTIVE_DATE,
p_ACTIVE_DATE_FIRST,
p_ACTIVE_DATE_FIRST_TYPE,
p_ACTIVE_DATE_SECOND,
p_ACTIVE_DATE_SECOND_TYPE,
p_LINE_QUANTITY,
p_LINE_UOM_CODE,
p_REQUEST_TYPE_CODE,
p_PRICED_QUANTITY,
p_PRICED_UOM_CODE ,
p_CURRENCY_CODE,
p_UNIT_PRICE ,
p_PERCENT_PRICE,
p_UOM_QUANTITY,
p_ADJUSTED_UNIT_PRICE,
p_PROCESSED_FLAG,
p_PRICE_FLAG,
p_LINE_ID,
P_PROCESSING_ORDER,
P_ROUNDING_FLAG,
p_PRICING_STATUS_CODE,
p_PRICING_STATUS_TEXT,
p_LINE_CATEGORY,
p_CHARGE_PERIODICITY_CODE
);
|Procedure Group INSERT_LINES2_AT
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_LINES2_AT
(p_LINE_INDEX IN NUMBER_TYPE,
p_LINE_TYPE_CODE IN VARCHAR_TYPE,
p_PRICING_EFFECTIVE_DATE IN DATE_TYPE ,
p_ACTIVE_DATE_FIRST IN DATE_TYPE ,
p_ACTIVE_DATE_FIRST_TYPE IN VARCHAR_TYPE,
p_ACTIVE_DATE_SECOND IN DATE_TYPE ,
p_ACTIVE_DATE_SECOND_TYPE IN VARCHAR_TYPE ,
p_LINE_QUANTITY IN NUMBER_TYPE ,
p_LINE_UOM_CODE IN VARCHAR_TYPE,
p_REQUEST_TYPE_CODE IN VARCHAR_TYPE,
p_PRICED_QUANTITY IN NUMBER_TYPE,
p_PRICED_UOM_CODE IN VARCHAR_TYPE,
p_CURRENCY_CODE IN VARCHAR_TYPE,
p_UNIT_PRICE IN NUMBER_TYPE,
p_ADJUSTED_UNIT_PRICE IN NUMBER_TYPE,
p_UPD_ADJUSTED_UNIT_PRICE IN NUMBER_TYPE,
p_UOM_QUANTITY IN NUMBER_TYPE,
p_PRICE_FLAG IN VARCHAR_TYPE,
p_LINE_ID IN NUMBER_TYPE,
p_ROUNDING_FACTOR IN PLS_INTEGER_TYPE,
p_PRICE_LIST_ID IN NUMBER_TYPE,
p_PRICE_REQUEST_CODE IN VARCHAR_TYPE,
p_USAGE_PRICING_TYPE IN VARCHAR_TYPE,
p_LINE_CATEGORY IN VARCHAR_TYPE,
p_CONTRACT_START_DATE IN DATE_TYPE,
p_CONTRACT_END_DATE IN DATE_TYPE,
p_CATCHWEIGHT_QTY IN NUMBER_TYPE,
p_ACTUAL_ORDER_QTY IN NUMBER_TYPE,
p_LIST_PRICE_OVERRIDE_FLAG IN VARCHAR_TYPE,
p_charge_periodicity_code IN VARCHAR_3_TYPE,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2 )
AS
PRAGMA AUTONOMOUS_TRANSACTION;
l_routine VARCHAR2(240):='Routine:QP_PREQ_GRP.INSERT_LINES2_AT';
/*INSERT INTO QP_INT_LINES
(LINE_INDEX,
LINE_TYPE_CODE,
PRICING_EFFECTIVE_DATE,
START_DATE_ACTIVE_FIRST,
ACTIVE_DATE_FIRST_TYPE,
START_DATE_ACTIVE_SECOND,
ACTIVE_DATE_SECOND_TYPE,
LINE_QUANTITY,
LINE_UOM_CODE,
REQUEST_TYPE_CODE,
PRICED_QUANTITY,
PRICED_UOM_CODE,
CURRENCY_CODE,
UNIT_PRICE,
ADJUSTED_UNIT_PRICE,
PRICE_FLAG,
UOM_QUANTITY,
LINE_ID,
ROUNDING_FACTOR,
UPDATED_ADJUSTED_UNIT_PRICE,
PRICE_LIST_HEADER_ID,
PRICE_REQUEST_CODE,
USAGE_PRICING_TYPE,
LINE_CATEGORY,
CONTRACT_START_DATE,
CONTRACT_END_DATE,
CATCHWEIGHT_QTY,
ACTUAL_ORDER_QUANTITY,
LIST_PRICE_OVERRIDE_FLAG, --po integration
CHARGE_PERIODICITY_CODE,
ORDER_UOM_SELLING_PRICE
)
VALUES ( p_LINE_INDEX(i),
p_LINE_TYPE_CODE(i),
p_PRICING_EFFECTIVE_DATE(i),
p_ACTIVE_DATE_FIRST(i),
p_ACTIVE_DATE_FIRST_TYPE(i),
p_ACTIVE_DATE_SECOND(i),
p_ACTIVE_DATE_SECOND_TYPE(i),
p_LINE_QUANTITY(i),
p_LINE_UOM_CODE(i),
p_REQUEST_TYPE_CODE(i),
p_PRICED_QUANTITY(i),
p_PRICED_UOM_CODE (i),
p_CURRENCY_CODE(i),
p_UNIT_PRICE (i),
p_ADJUSTED_UNIT_PRICE(i),
p_PRICE_FLAG(i),
p_UOM_QUANTITY(i),
p_LINE_ID(i),
P_ROUNDING_FACTOR(i),
p_UPD_ADJUSTED_UNIT_PRICE(i),
nvl(p_PRICE_LIST_ID(i),-9999),
p_PRICE_REQUEST_CODE(i),
nvl(p_USAGE_PRICING_TYPE(i),'REGULAR'),
p_LINE_CATEGORY(i),
p_CONTRACT_START_DATE(i),
p_CONTRACT_END_DATE(i),
p_CATCHWEIGHT_QTY(i),
p_ACTUAL_ORDER_QTY(i),
nvl (p_LIST_PRICE_OVERRIDE_FLAG(i), 'N'),
p_CHARGE_PERIODICITY_CODE,
p_UNIT_PRICE(i)-- po integration
);*/
INSERT INTO QP_INT_LINES_t
(LINE_INDEX,
LINE_TYPE_CODE,
PRICING_EFFECTIVE_DATE,
START_DATE_ACTIVE_FIRST,
ACTIVE_DATE_FIRST_TYPE,
START_DATE_ACTIVE_SECOND,
ACTIVE_DATE_SECOND_TYPE,
LINE_QUANTITY,
LINE_UOM_CODE,
REQUEST_TYPE_CODE,
PRICED_QUANTITY,
PRICED_UOM_CODE,
CURRENCY_CODE,
UNIT_PRICE,
ADJUSTED_UNIT_PRICE,
PRICE_FLAG,
UOM_QUANTITY,
LINE_ID,
ROUNDING_FACTOR,
UPDATED_ADJUSTED_UNIT_PRICE,
PRICE_LIST_HEADER_ID,
PRICE_REQUEST_CODE,
USAGE_PRICING_TYPE,
LINE_CATEGORY,
CONTRACT_START_DATE,
CONTRACT_END_DATE,
CATCHWEIGHT_QTY,
ACTUAL_ORDER_QUANTITY,
LIST_PRICE_OVERRIDE_FLAG, --po integration
ORDER_UOM_SELLING_PRICE ,
CHARGE_PERIODICITY_CODE,
request_id
)
VALUES ( p_LINE_INDEX(i),
p_LINE_TYPE_CODE(i),
p_PRICING_EFFECTIVE_DATE(i),
p_ACTIVE_DATE_FIRST(i),
p_ACTIVE_DATE_FIRST_TYPE(i),
p_ACTIVE_DATE_SECOND(i),
p_ACTIVE_DATE_SECOND_TYPE(i),
p_LINE_QUANTITY(i),
p_LINE_UOM_CODE(i),
p_REQUEST_TYPE_CODE(i),
p_PRICED_QUANTITY(i),
p_PRICED_UOM_CODE (i),
p_CURRENCY_CODE(i),
p_UNIT_PRICE (i),
p_ADJUSTED_UNIT_PRICE(i),
p_PRICE_FLAG(i),
p_UOM_QUANTITY(i),
p_LINE_ID(i),
P_ROUNDING_FACTOR(i),
p_UPD_ADJUSTED_UNIT_PRICE(i),
nvl(p_PRICE_LIST_ID(i),-9999),
p_PRICE_REQUEST_CODE(i),
nvl(p_USAGE_PRICING_TYPE(i),'REGULAR'),
p_LINE_CATEGORY(i),
p_CONTRACT_START_DATE(i),
p_CONTRACT_END_DATE(i),
p_CATCHWEIGHT_QTY(i),
p_ACTUAL_ORDER_QTY(i),
nvl (p_LIST_PRICE_OVERRIDE_FLAG(i), 'N'),
p_UNIT_PRICE(i), -- po integration
p_CHARGE_PERIODICITY_CODE(i),
l_request_id
);
|Procedure Group INSERT_LINES2
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_LINES2
(p_LINE_INDEX IN NUMBER_TYPE,
p_LINE_TYPE_CODE IN VARCHAR_TYPE,
p_PRICING_EFFECTIVE_DATE IN DATE_TYPE ,
p_ACTIVE_DATE_FIRST IN DATE_TYPE ,
p_ACTIVE_DATE_FIRST_TYPE IN VARCHAR_TYPE,
p_ACTIVE_DATE_SECOND IN DATE_TYPE ,
p_ACTIVE_DATE_SECOND_TYPE IN VARCHAR_TYPE ,
p_LINE_QUANTITY IN NUMBER_TYPE ,
p_LINE_UOM_CODE IN VARCHAR_TYPE,
p_REQUEST_TYPE_CODE IN VARCHAR_TYPE,
p_PRICED_QUANTITY IN NUMBER_TYPE,
p_PRICED_UOM_CODE IN VARCHAR_TYPE,
p_CURRENCY_CODE IN VARCHAR_TYPE,
p_UNIT_PRICE IN NUMBER_TYPE,
p_ADJUSTED_UNIT_PRICE IN NUMBER_TYPE,
p_UPD_ADJUSTED_UNIT_PRICE IN NUMBER_TYPE,
p_UOM_QUANTITY IN NUMBER_TYPE,
p_PRICE_FLAG IN VARCHAR_TYPE,
p_LINE_ID IN NUMBER_TYPE,
p_ROUNDING_FACTOR IN PLS_INTEGER_TYPE,
p_PRICE_LIST_ID IN NUMBER_TYPE,
p_PRICE_REQUEST_CODE IN VARCHAR_TYPE,
p_USAGE_PRICING_TYPE IN VARCHAR_TYPE,
p_LINE_CATEGORY IN VARCHAR_TYPE,
p_CONTRACT_START_DATE IN DATE_TYPE,
p_CONTRACT_END_DATE IN DATE_TYPE,
p_CATCHWEIGHT_QTY IN NUMBER_TYPE,
p_ACTUAL_ORDER_QTY IN NUMBER_TYPE,
p_LIST_PRICE_OVERRIDE_FLAG IN VARCHAR_TYPE,
p_charge_periodicity_code IN VARCHAR_3_TYPE,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2 )
AS
l_routine VARCHAR2(240):='Routine:QP_PREQ_GRP.INSERT_LINES2';
INSERT INTO qp_npreq_lines_tmp
(LINE_INDEX,
LINE_TYPE_CODE,
PRICING_EFFECTIVE_DATE,
START_DATE_ACTIVE_FIRST,
ACTIVE_DATE_FIRST_TYPE,
START_DATE_ACTIVE_SECOND,
ACTIVE_DATE_SECOND_TYPE,
LINE_QUANTITY,
LINE_UOM_CODE,
REQUEST_TYPE_CODE,
PRICED_QUANTITY,
PRICED_UOM_CODE,
CURRENCY_CODE,
UNIT_PRICE,
ADJUSTED_UNIT_PRICE,
PRICE_FLAG,
UOM_QUANTITY,
LINE_ID,
ROUNDING_FACTOR,
UPDATED_ADJUSTED_UNIT_PRICE,
PRICE_LIST_HEADER_ID,
PRICE_REQUEST_CODE,
USAGE_PRICING_TYPE,
LINE_CATEGORY,
CONTRACT_START_DATE,
CONTRACT_END_DATE,
CATCHWEIGHT_QTY,
ACTUAL_ORDER_QUANTITY,
LIST_PRICE_OVERRIDE_FLAG, --po integration
CHARGE_PERIODICITY_CODE,
ORDER_UOM_SELLING_PRICE
)
VALUES ( p_LINE_INDEX(i),
p_LINE_TYPE_CODE(i),
p_PRICING_EFFECTIVE_DATE(i),
p_ACTIVE_DATE_FIRST(i),
p_ACTIVE_DATE_FIRST_TYPE(i),
p_ACTIVE_DATE_SECOND(i),
p_ACTIVE_DATE_SECOND_TYPE(i),
p_LINE_QUANTITY(i),
p_LINE_UOM_CODE(i),
p_REQUEST_TYPE_CODE(i),
p_PRICED_QUANTITY(i),
p_PRICED_UOM_CODE (i),
p_CURRENCY_CODE(i),
p_UNIT_PRICE (i),
p_ADJUSTED_UNIT_PRICE(i),
p_PRICE_FLAG(i),
p_UOM_QUANTITY(i),
p_LINE_ID(i),
P_ROUNDING_FACTOR(i),
p_UPD_ADJUSTED_UNIT_PRICE(i),
nvl(p_PRICE_LIST_ID(i),-9999),
p_PRICE_REQUEST_CODE(i),
nvl(p_USAGE_PRICING_TYPE(i),'REGULAR'),
p_LINE_CATEGORY(i),
p_CONTRACT_START_DATE(i),
p_CONTRACT_END_DATE(i),
p_CATCHWEIGHT_QTY(i),
p_ACTUAL_ORDER_QTY(i),
nvl (p_LIST_PRICE_OVERRIDE_FLAG(i), 'N'),
p_CHARGE_PERIODICITY_CODE(i),
p_UNIT_PRICE(i)
); --po integration
QP_PREQ_GRP.INSERT_LINES2_AT
(p_LINE_INDEX ,
p_LINE_TYPE_CODE ,
p_PRICING_EFFECTIVE_DATE ,
p_ACTIVE_DATE_FIRST ,
p_ACTIVE_DATE_FIRST_TYPE ,
p_ACTIVE_DATE_SECOND ,
p_ACTIVE_DATE_SECOND_TYPE,
p_LINE_QUANTITY ,
p_LINE_UOM_CODE ,
p_REQUEST_TYPE_CODE ,
p_PRICED_QUANTITY ,
p_PRICED_UOM_CODE ,
p_CURRENCY_CODE ,
p_UNIT_PRICE ,
p_ADJUSTED_UNIT_PRICE ,
p_UPD_ADJUSTED_UNIT_PRICE,
p_UOM_QUANTITY ,
p_PRICE_FLAG ,
p_LINE_ID ,
p_ROUNDING_FACTOR ,
p_PRICE_LIST_ID ,
p_PRICE_REQUEST_CODE ,
p_USAGE_PRICING_TYPE ,
p_LINE_CATEGORY ,
p_CONTRACT_START_DATE ,
p_CONTRACT_END_DATE ,
p_CATCHWEIGHT_QTY ,
p_ACTUAL_ORDER_QTY ,
p_LIST_PRICE_OVERRIDE_FLAG, --po integration
p_charge_periodicity_code,
x_status_code ,
x_status_text );
|PROCEDURE INSERT_LINES2_AT for bulk binding
+-----------------------------------------------------------------------
*/
PROCEDURE INSERT_LINES2_AT
(p_LINE_INDEX IN PLS_INTEGER_TYPE,
p_LINE_TYPE_CODE IN VARCHAR_TYPE,
p_PRICING_EFFECTIVE_DATE IN DATE_TYPE ,
p_ACTIVE_DATE_FIRST IN DATE_TYPE ,
p_ACTIVE_DATE_FIRST_TYPE IN VARCHAR_TYPE,
p_ACTIVE_DATE_SECOND IN DATE_TYPE ,
p_ACTIVE_DATE_SECOND_TYPE IN VARCHAR_TYPE ,
p_LINE_QUANTITY IN NUMBER_TYPE ,
p_LINE_UOM_CODE IN VARCHAR_TYPE,
p_REQUEST_TYPE_CODE IN VARCHAR_TYPE,
p_PRICED_QUANTITY IN NUMBER_TYPE,
p_PRICED_UOM_CODE IN VARCHAR_TYPE,
p_CURRENCY_CODE IN VARCHAR_TYPE,
p_UNIT_PRICE IN NUMBER_TYPE,
p_PERCENT_PRICE IN NUMBER_TYPE,
p_UOM_QUANTITY IN NUMBER_TYPE,
p_ADJUSTED_UNIT_PRICE IN NUMBER_TYPE,
p_UPD_ADJUSTED_UNIT_PRICE IN NUMBER_TYPE,
p_PROCESSED_FLAG IN VARCHAR_TYPE,
p_PRICE_FLAG IN VARCHAR_TYPE,
p_LINE_ID IN NUMBER_TYPE,
p_PROCESSING_ORDER IN PLS_INTEGER_TYPE,
p_PRICING_STATUS_CODE IN VARCHAR_TYPE,
p_PRICING_STATUS_TEXT IN VARCHAR_TYPE,
p_ROUNDING_FLAG IN FLAG_TYPE,
p_ROUNDING_FACTOR IN PLS_INTEGER_TYPE,
p_QUALIFIERS_EXIST_FLAG IN VARCHAR_TYPE,
p_PRICING_ATTRS_EXIST_FLAG IN VARCHAR_TYPE,
p_PRICE_LIST_ID IN NUMBER_TYPE,
p_VALIDATED_FLAG IN VARCHAR_TYPE,
p_PRICE_REQUEST_CODE IN VARCHAR_TYPE,
p_USAGE_PRICING_TYPE IN VARCHAR_TYPE,
p_LINE_CATEGORY IN VARCHAR_TYPE,
p_CONTRACT_START_DATE IN DATE_TYPE,
p_CONTRACT_END_DATE IN DATE_TYPE,
p_LINE_UNIT_PRICE IN NUMBER_TYPE,
p_CATCHWEIGHT_QTY IN NUMBER_TYPE,
p_ACTUAL_ORDER_QTY IN NUMBER_TYPE,
p_LIST_PRICE_OVERRIDE_FLAG IN VARCHAR_TYPE,--po integration
p_charge_periodicity_code IN VARCHAR_3_TYPE,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2 )
AS
PRAGMA AUTONOMOUS_TRANSACTION;
l_routine VARCHAR2(240):='Routine:QP_PREQ_GRP.INSERT_LINES2_AT';
QP_PREQ_GRP.engine_debug('Before bulk inserting lines...');
/*INSERT INTO QP_INT_LINES
( LINE_INDEX,
LINE_TYPE_CODE,
PRICING_EFFECTIVE_DATE,
START_DATE_ACTIVE_FIRST,
ACTIVE_DATE_FIRST_TYPE,
START_DATE_ACTIVE_SECOND,
ACTIVE_DATE_SECOND_TYPE,
LINE_QUANTITY,
LINE_UOM_CODE,
REQUEST_TYPE_CODE,
PRICED_QUANTITY,
PRICED_UOM_CODE,
CURRENCY_CODE,
UNIT_PRICE,
PERCENT_PRICE,
UOM_QUANTITY,
ADJUSTED_UNIT_PRICE,
PROCESSED_FLAG,
PRICE_FLAG,
LINE_ID,
PROCESSING_ORDER,
ROUNDING_FLAG,
ROUNDING_FACTOR,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
UPDATED_ADJUSTED_UNIT_PRICE,
QUALIFIERS_EXIST_FLAG,
PRICING_ATTRS_EXIST_FLAG,
PRICE_LIST_HEADER_ID,
VALIDATED_FLAG,
PRICE_REQUEST_CODE,
USAGE_PRICING_TYPE,
LINE_CATEGORY,
CONTRACT_START_DATE, -- shulin
CONTRACT_END_DATE, -- shulin
LINE_UNIT_PRICE, -- shu_latest
CATCHWEIGHT_QTY,
ACTUAL_ORDER_QUANTITY,
LIST_PRICE_OVERRIDE_FLAG, -- po integration
CHARGE_PERIODICITY_CODE,
ORDER_UOM_SELLING_PRICE)
VALUES ( p_LINE_INDEX(i),
p_LINE_TYPE_CODE(i),
p_PRICING_EFFECTIVE_DATE(i),
p_ACTIVE_DATE_FIRST(i),
p_ACTIVE_DATE_FIRST_TYPE(i),
p_ACTIVE_DATE_SECOND(i),
p_ACTIVE_DATE_SECOND_TYPE(i),
p_LINE_QUANTITY(i),
p_LINE_UOM_CODE(i),
p_REQUEST_TYPE_CODE(i),
p_PRICED_QUANTITY(i),
p_PRICED_UOM_CODE (i),
p_CURRENCY_CODE(i),
p_UNIT_PRICE (i),
p_PERCENT_PRICE(i),
p_UOM_QUANTITY(i),
p_ADJUSTED_UNIT_PRICE(i),
p_PROCESSED_FLAG(i),
p_PRICE_FLAG(i),
p_LINE_ID(i),
P_PROCESSING_ORDER(i),
P_ROUNDING_FLAG(i),
P_ROUNDING_FACTOR(i),
p_PRICING_STATUS_CODE(i),
p_PRICING_STATUS_TEXT(i),
p_UPD_ADJUSTED_UNIT_PRICE(i),
nvl(p_QUALIFIERS_EXIST_FLAG(i),'N'),
nvl(p_PRICING_ATTRS_EXIST_FLAG(i),'N'),
nvl(p_PRICE_LIST_ID(i),-9999),
nvl(p_VALIDATED_FLAG(i),'N'),
p_PRICE_REQUEST_CODE(i),
nvl(p_USAGE_PRICING_TYPE(i),'REGULAR'),
G_LINE_CATEGORY_DEF_TBL(i),
G_CONTRACT_START_DATE_DEF_TBL(i),
G_CONTRACT_END_DATE_DEF_TBL(i),
G_LINE_UNIT_PRICE_DEF_TBL(i),
G_CATCHWEIGHT_QTY_DEF_TBL(i),
G_ACTUAL_ORDER_QTY_DEF_TBL(i),
NVL(p_LIST_PRICE_OVERRIDE_FLAG(i), 'N'), --po integration
p_CHARGE_PERIODICITY_CODE(i),
p_UNIT_PRICE(i)
);*/
INSERT INTO QP_INT_LINES_T
( LINE_INDEX,
LINE_TYPE_CODE,
PRICING_EFFECTIVE_DATE,
START_DATE_ACTIVE_FIRST,
ACTIVE_DATE_FIRST_TYPE,
START_DATE_ACTIVE_SECOND,
ACTIVE_DATE_SECOND_TYPE,
LINE_QUANTITY,
LINE_UOM_CODE,
REQUEST_TYPE_CODE,
PRICED_QUANTITY,
PRICED_UOM_CODE,
CURRENCY_CODE,
UNIT_PRICE,
PERCENT_PRICE,
UOM_QUANTITY,
ADJUSTED_UNIT_PRICE,
PROCESSED_FLAG,
PRICE_FLAG,
LINE_ID,
PROCESSING_ORDER,
ROUNDING_FLAG,
ROUNDING_FACTOR,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
UPDATED_ADJUSTED_UNIT_PRICE,
QUALIFIERS_EXIST_FLAG,
PRICING_ATTRS_EXIST_FLAG,
PRICE_LIST_HEADER_ID,
VALIDATED_FLAG,
PRICE_REQUEST_CODE,
USAGE_PRICING_TYPE,
LINE_CATEGORY,
CONTRACT_START_DATE, -- shulin
CONTRACT_END_DATE, -- shulin
LINE_UNIT_PRICE, -- shu_latest
CATCHWEIGHT_QTY,
ACTUAL_ORDER_QUANTITY,
LIST_PRICE_OVERRIDE_FLAG, -- po integration
CHARGE_PERIODICITY_CODE,
ORDER_UOM_SELLING_PRICE,
request_id)
VALUES ( p_LINE_INDEX(i),
p_LINE_TYPE_CODE(i),
p_PRICING_EFFECTIVE_DATE(i),
p_ACTIVE_DATE_FIRST(i),
p_ACTIVE_DATE_FIRST_TYPE(i),
p_ACTIVE_DATE_SECOND(i),
p_ACTIVE_DATE_SECOND_TYPE(i),
p_LINE_QUANTITY(i),
p_LINE_UOM_CODE(i),
p_REQUEST_TYPE_CODE(i),
p_PRICED_QUANTITY(i),
p_PRICED_UOM_CODE (i),
p_CURRENCY_CODE(i),
p_UNIT_PRICE (i),
p_PERCENT_PRICE(i),
p_UOM_QUANTITY(i),
p_ADJUSTED_UNIT_PRICE(i),
p_PROCESSED_FLAG(i),
p_PRICE_FLAG(i),
p_LINE_ID(i),
P_PROCESSING_ORDER(i),
P_ROUNDING_FLAG(i),
P_ROUNDING_FACTOR(i),
p_PRICING_STATUS_CODE(i),
p_PRICING_STATUS_TEXT(i),
p_UPD_ADJUSTED_UNIT_PRICE(i),
nvl(p_QUALIFIERS_EXIST_FLAG(i),'N'),
nvl(p_PRICING_ATTRS_EXIST_FLAG(i),'N'),
nvl(p_PRICE_LIST_ID(i),-9999),
nvl(p_VALIDATED_FLAG(i),'N'),
p_PRICE_REQUEST_CODE(i),
nvl(p_USAGE_PRICING_TYPE(i),'REGULAR'),
G_LINE_CATEGORY_DEF_TBL(i),
G_CONTRACT_START_DATE_DEF_TBL(i), /* shulin */
G_CONTRACT_END_DATE_DEF_TBL(i), /* shulin */
G_LINE_UNIT_PRICE_DEF_TBL(i), /* shu_latest */
G_CATCHWEIGHT_QTY_DEF_TBL(i),
G_ACTUAL_ORDER_QTY_DEF_TBL(i),
NVL(p_LIST_PRICE_OVERRIDE_FLAG(i), 'N'), --po integration
p_CHARGE_PERIODICITY_CODE(i),
p_UNIT_PRICE(i),
l_request_id
);
|PROCEDURE INSERT_LINES2 for bulk binding
+-----------------------------------------------------------------------
*/
PROCEDURE INSERT_LINES2
(p_LINE_INDEX IN PLS_INTEGER_TYPE,
p_LINE_TYPE_CODE IN VARCHAR_TYPE,
p_PRICING_EFFECTIVE_DATE IN DATE_TYPE ,
p_ACTIVE_DATE_FIRST IN DATE_TYPE ,
p_ACTIVE_DATE_FIRST_TYPE IN VARCHAR_TYPE,
p_ACTIVE_DATE_SECOND IN DATE_TYPE ,
p_ACTIVE_DATE_SECOND_TYPE IN VARCHAR_TYPE ,
p_LINE_QUANTITY IN NUMBER_TYPE ,
p_LINE_UOM_CODE IN VARCHAR_TYPE,
p_REQUEST_TYPE_CODE IN VARCHAR_TYPE,
p_PRICED_QUANTITY IN NUMBER_TYPE,
p_PRICED_UOM_CODE IN VARCHAR_TYPE,
p_CURRENCY_CODE IN VARCHAR_TYPE,
p_UNIT_PRICE IN NUMBER_TYPE,
p_PERCENT_PRICE IN NUMBER_TYPE,
p_UOM_QUANTITY IN NUMBER_TYPE,
p_ADJUSTED_UNIT_PRICE IN NUMBER_TYPE,
p_UPD_ADJUSTED_UNIT_PRICE IN NUMBER_TYPE,
p_PROCESSED_FLAG IN VARCHAR_TYPE,
p_PRICE_FLAG IN VARCHAR_TYPE,
p_LINE_ID IN NUMBER_TYPE,
p_PROCESSING_ORDER IN PLS_INTEGER_TYPE,
p_PRICING_STATUS_CODE IN VARCHAR_TYPE,
p_PRICING_STATUS_TEXT IN VARCHAR_TYPE,
p_ROUNDING_FLAG IN FLAG_TYPE,
p_ROUNDING_FACTOR IN PLS_INTEGER_TYPE,
p_QUALIFIERS_EXIST_FLAG IN VARCHAR_TYPE,
p_PRICING_ATTRS_EXIST_FLAG IN VARCHAR_TYPE,
p_PRICE_LIST_ID IN NUMBER_TYPE,
p_VALIDATED_FLAG IN VARCHAR_TYPE,
p_PRICE_REQUEST_CODE IN VARCHAR_TYPE,
p_USAGE_PRICING_TYPE IN VARCHAR_TYPE,
p_LINE_CATEGORY IN VARCHAR_TYPE,
p_CONTRACT_START_DATE IN DATE_TYPE,
p_CONTRACT_END_DATE IN DATE_TYPE,
p_LINE_UNIT_PRICE IN NUMBER_TYPE,
p_CATCHWEIGHT_QTY IN NUMBER_TYPE,
p_ACTUAL_ORDER_QTY IN NUMBER_TYPE,
p_LIST_PRICE_OVERRIDE_FLAG IN VARCHAR_TYPE, --po integration
p_charge_periodicity_code IN VARCHAR_3_TYPE,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2 )
AS
l_routine VARCHAR2(240):='Routine:QP_PREQ_GRP.INSERT_LINES2';
INSERT INTO qp_npreq_lines_tmp
(LINE_INDEX,
LINE_TYPE_CODE,
PRICING_EFFECTIVE_DATE,
START_DATE_ACTIVE_FIRST,
ACTIVE_DATE_FIRST_TYPE,
START_DATE_ACTIVE_SECOND,
ACTIVE_DATE_SECOND_TYPE,
LINE_QUANTITY,
LINE_UOM_CODE,
REQUEST_TYPE_CODE,
PRICED_QUANTITY,
PRICED_UOM_CODE,
CURRENCY_CODE,
UNIT_PRICE,
PERCENT_PRICE,
UOM_QUANTITY,
ADJUSTED_UNIT_PRICE,
PROCESSED_FLAG,
PRICE_FLAG,
LINE_ID,
PROCESSING_ORDER,
ROUNDING_FLAG,
ROUNDING_FACTOR,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
UPDATED_ADJUSTED_UNIT_PRICE,
QUALIFIERS_EXIST_FLAG,
PRICING_ATTRS_EXIST_FLAG,
PRICE_LIST_HEADER_ID,
VALIDATED_FLAG,
PRICE_REQUEST_CODE,
USAGE_PRICING_TYPE,
LINE_CATEGORY,
CONTRACT_START_DATE, -- shulin
CONTRACT_END_DATE, -- shulin
LINE_UNIT_PRICE, -- shu_latest
CATCHWEIGHT_QTY,
ACTUAL_ORDER_QUANTITY,
LIST_PRICE_OVERRIDE_FLAG, -- po integration
CHARGE_PERIODICITY_CODE,
ORDER_UOM_SELLING_PRICE
)
VALUES ( p_LINE_INDEX(i),
p_LINE_TYPE_CODE(i),
p_PRICING_EFFECTIVE_DATE(i),
p_ACTIVE_DATE_FIRST(i),
p_ACTIVE_DATE_FIRST_TYPE(i),
p_ACTIVE_DATE_SECOND(i),
p_ACTIVE_DATE_SECOND_TYPE(i),
p_LINE_QUANTITY(i),
p_LINE_UOM_CODE(i),
p_REQUEST_TYPE_CODE(i),
p_PRICED_QUANTITY(i),
p_PRICED_UOM_CODE (i),
p_CURRENCY_CODE(i),
p_UNIT_PRICE (i),
p_PERCENT_PRICE(i),
p_UOM_QUANTITY(i),
p_ADJUSTED_UNIT_PRICE(i),
p_PROCESSED_FLAG(i),
p_PRICE_FLAG(i),
p_LINE_ID(i),
P_PROCESSING_ORDER(i),
P_ROUNDING_FLAG(i),
P_ROUNDING_FACTOR(i),
p_PRICING_STATUS_CODE(i),
p_PRICING_STATUS_TEXT(i),
p_UPD_ADJUSTED_UNIT_PRICE(i),
nvl(p_QUALIFIERS_EXIST_FLAG(i),'N'),
nvl(p_PRICING_ATTRS_EXIST_FLAG(i),'N'),
nvl(p_PRICE_LIST_ID(i),-9999),
nvl(p_VALIDATED_FLAG(i),'N'),
p_PRICE_REQUEST_CODE(i),
nvl(p_USAGE_PRICING_TYPE(i),'REGULAR'),
G_LINE_CATEGORY_DEF_TBL(i),
G_CONTRACT_START_DATE_DEF_TBL(i), /* shulin */
G_CONTRACT_END_DATE_DEF_TBL(i), /* shulin */
G_LINE_UNIT_PRICE_DEF_TBL(i), /* shu_latest */
G_CATCHWEIGHT_QTY_DEF_TBL(i),
G_ACTUAL_ORDER_QTY_DEF_TBL(i),
nvl (G_LIST_PRICE_OVERRIDE_FLAG_TBL(i), 'N'), -- po integration
G_CHARGE_PERIODICITY_CODE_TBL(i),
p_UNIT_PRICE(i)
);
QP_PREQ_GRP.INSERT_LINES2_AT(
p_LINE_INDEX,
p_LINE_TYPE_CODE ,
p_PRICING_EFFECTIVE_DATE ,
p_ACTIVE_DATE_FIRST ,
p_ACTIVE_DATE_FIRST_TYPE ,
p_ACTIVE_DATE_SECOND ,
p_ACTIVE_DATE_SECOND_TYPE,
p_LINE_QUANTITY ,
p_LINE_UOM_CODE ,
p_REQUEST_TYPE_CODE ,
p_PRICED_QUANTITY ,
p_PRICED_UOM_CODE ,
p_CURRENCY_CODE ,
p_UNIT_PRICE ,
p_PERCENT_PRICE ,
p_UOM_QUANTITY ,
p_ADJUSTED_UNIT_PRICE ,
p_UPD_ADJUSTED_UNIT_PRICE,
p_PROCESSED_FLAG ,
p_PRICE_FLAG ,
p_LINE_ID ,
p_PROCESSING_ORDER ,
p_PRICING_STATUS_CODE ,
p_PRICING_STATUS_TEXT ,
p_ROUNDING_FLAG ,
p_ROUNDING_FACTOR ,
p_QUALIFIERS_EXIST_FLAG ,
p_PRICING_ATTRS_EXIST_FLAG ,
p_PRICE_LIST_ID ,
p_VALIDATED_FLAG ,
p_PRICE_REQUEST_CODE ,
p_USAGE_PRICING_TYPE ,
G_LINE_CATEGORY_DEF_TBL,
G_CONTRACT_START_DATE_DEF_TBL,
G_CONTRACT_END_DATE_DEF_TBL,
G_LINE_UNIT_PRICE_DEF_TBL,
G_CATCHWEIGHT_QTY_DEF_TBL,
G_ACTUAL_ORDER_QTY_DEF_TBL,
G_LIST_PRICE_OVERRIDE_FLAG_TBL, --po integration
G_CHARGE_PERIODICITY_CODE_TBL,
x_status_code ,
x_status_text
);
G_LINE_CATEGORY_DEF_TBL.delete;
G_CONTRACT_START_DATE_DEF_TBL.delete;
G_CONTRACT_END_DATE_DEF_TBL.delete;
G_LINE_UNIT_PRICE_DEF_TBL.delete;
G_CATCHWEIGHT_QTY_DEF_TBL.delete;
G_ACTUAL_ORDER_QTY_DEF_TBL.delete;
G_LIST_PRICE_OVERRIDE_FLAG_TBL.delete;
G_CHARGE_PERIODICITY_CODE_TBL.delete;
|Procedure INSERT_LDETS
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_LDETS
(p_LINE_DETAIL_index IN PLS_INTEGER,
p_LINE_DETAIL_TYPE_CODE IN VARCHAR2,
p_PRICE_BREAK_TYPE_CODE IN VARCHAR2:=NULL,
p_LIST_PRICE IN NUMBER:=NULL,
p_LINE_INDEX IN PLS_INTEGER,
p_CREATED_FROM_LIST_HEADER_ID IN NUMBER,
p_CREATED_FROM_LIST_LINE_ID IN NUMBER,
p_CREATED_FROM_LIST_LINE_TYPE IN VARCHAR2,
p_CREATED_FROM_LIST_TYPE_CODE IN VARCHAR2:=NULL,
p_CREATED_FROM_SQL IN VARCHAR2:=NULL,
p_PRICING_GROUP_SEQUENCE IN PLS_INTEGER:=NULL,
P_PRICING_PHASE_ID IN PLS_INTEGER:=NULL,
p_OPERAND_CALCULATION_CODE IN VARCHAR2:=NULL,
p_OPERAND_VALUE IN VARCHAR2:=NULL,
p_SUBSTITUTION_TYPE_CODE IN VARCHAR2:=NULL,
p_SUBSTITUTION_VALUE_FROM IN VARCHAR2:=NULL,
p_SUBSTITUTION_VALUE_TO IN VARCHAR2:=NULL,
p_ASK_FOR_FLAG IN VARCHAR2:=NULL,
p_PRICE_FORMULA_ID IN NUMBER:=NULL,
p_PRICING_STATUS_CODE IN VARCHAR2,
p_PRICING_STATUS_TEXT IN VARCHAR2:=NULL,
p_PRODUCT_PRECEDENCE IN PLS_INTEGER:=NULL,
p_INCOMPATABLILITY_GRP_CODE IN VARCHAR2:=NULL,
p_PROCESSED_FLAG IN VARCHAR2:=NULL,
p_APPLIED_FLAG IN VARCHAR2:=NULL,
p_AUTOMATIC_FLAG IN VARCHAR2:=NULL,
p_OVERRIDE_FLAG IN VARCHAR2:=NULL,
p_PRIMARY_UOM_FLAG IN VARCHAR2:=NULL,
p_PRINT_ON_INVOICE_FLAG IN VARCHAR2:=NULL,
p_MODIFIER_LEVEL_CODE IN VARCHAR2:=NULL,
p_BENEFIT_QTY IN NUMBER:=NULL,
p_BENEFIT_UOM_CODE IN VARCHAR2:=NULL,
p_LIST_LINE_NO IN VARCHAR2:=NULL,
p_ACCRUAL_FLAG IN VARCHAR2:=NULL,
p_ACCRUAL_CONVERSION_RATE IN NUMBER:=NULL,
p_ESTIM_ACCRUAL_RATE IN NUMBER:=NULL,
p_RECURRING_FLAG IN VARCHAR2:=NULL,
p_RECURRING_VALUE IN NUMBER:=NULL, -- block pricing
p_SELECTED_VOLUME_ATTR IN VARCHAR2:=NULL,
p_ROUNDING_FACTOR IN NUMBER:=NULL,
p_SECONDARY_PRICELIST_IND IN VARCHAR2:=NULL,
p_UPDATED_FLAG IN VARCHAR := NULL,
p_PROCESS_CODE IN VARCHAR := NULL,
p_CHARGE_TYPE_CODE IN VARCHAR := NULL,
p_CHARGE_SUBTYPE_CODE IN VARCHAR := NULL,
p_GROUP_QUANTITY IN NUMBER :=NULL,
p_GROUP_AMOUNT IN NUMBER :=NULL,
p_CALCULATION_CODE IN VARCHAR2 := NULL,
p_CURRENCY_DETAIL_ID IN NUMBER :=NULL, /*vivek */
p_CURRENCY_HEADER_ID IN NUMBER :=NULL, /*vivek */
p_SELLING_ROUNDING_FACTOR IN NUMBER :=NULL, /*vivek */
p_ORDER_CURRENCY IN VARCHAR := NULL, /*vivek */
p_PRICING_EFFECTIVE_DATE IN DATE := NULL,/*vivek */
p_BASE_CURRENCY_CODE IN VARCHAR := NULL,/*vivek */
p_CHANGE_REASON_CODE IN VARCHAR2 := NULL,
p_CHANGE_REASON_TEXT IN VARCHAR2 := NULL,
p_LINE_QUANTITY IN NUMBER := NULL,
p_BREAK_UOM_CODE IN VARCHAR2 := NULL, /* Proration */
p_BREAK_UOM_CONTEXT IN VARCHAR2 := NULL, /* Proration */
p_BREAK_UOM_ATTRIBUTE IN VARCHAR2 := NULL, /* Proration */
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LDETS';
INSERT INTO qp_npreq_ldets_tmp
(LINE_DETAIL_INDEX,
LINE_DETAIL_TYPE_CODE,
PRICE_BREAK_TYPE_CODE,
LINE_INDEX,
CREATED_FROM_LIST_HEADER_ID,
CREATED_FROM_LIST_LINE_ID,
CREATED_FROM_LIST_LINE_TYPE,
CREATED_FROM_LIST_TYPE_CODE,
CREATED_FROM_SQL,
PRICING_GROUP_SEQUENCE,
PRICING_PHASE_ID,
OPERAND_CALCULATION_CODE,
OPERAND_VALUE,
SUBSTITUTION_TYPE_CODE,
SUBSTITUTION_VALUE_FROM,
SUBSTITUTION_VALUE_TO,
ASK_FOR_FLAG,
PRICE_FORMULA_ID,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
PRODUCT_PRECEDENCE,
INCOMPATABILITY_GRP_CODE,
PROCESSED_FLAG,
APPLIED_FLAG,
AUTOMATIC_FLAG,
OVERRIDE_FLAG,
PRINT_ON_INVOICE_FLAG,
PRIMARY_UOM_FLAG,
MODIFIER_LEVEL_CODE,
BENEFIT_QTY,
BENEFIT_UOM_CODE,
LIST_LINE_NO,
ACCRUAL_FLAG,
ACCRUAL_CONVERSION_RATE,
ESTIM_ACCRUAL_RATE,
RECURRING_FLAG,
RECURRING_VALUE, -- block pricing
SELECTED_VOLUME_ATTR,
ROUNDING_FACTOR,
UPDATED_FLAG,
PROCESS_CODE,
CHARGE_TYPE_CODE,
CHARGE_SUBTYPE_CODE,
GROUP_QUANTITY,
GROUP_AMOUNT,
CALCULATION_CODE,
CURRENCY_DETAIL_ID, /*vivek */
CURRENCY_HEADER_ID, /*vivek */
SELLING_ROUNDING_FACTOR, /*vivek */
ORDER_CURRENCY, /*vivek */
PRICING_EFFECTIVE_DATE,/*vivek */
BASE_CURRENCY_CODE,/*vivek */
CHANGE_REASON_CODE,
CHANGE_REASON_TEXT,
LINE_QUANTITY
,BREAK_UOM_CODE /* Proration */
,BREAK_UOM_CONTEXT /* Proration */
,BREAK_UOM_ATTRIBUTE /* Proration */
)
VALUES ( p_LINE_DETAIL_INDEX,
p_LINE_DETAIL_TYPE_CODE,
p_PRICE_BREAK_TYPE_CODE,
p_LINE_INDEX,
p_CREATED_FROM_LIST_HEADER_ID,
p_CREATED_FROM_LIST_LINE_ID,
p_CREATED_FROM_LIST_LINE_TYPE,
p_CREATED_FROM_LIST_TYPE_CODE,
p_CREATED_FROM_SQL,
p_PRICING_GROUP_SEQUENCE,
p_PRICING_PHASE_ID,
p_OPERAND_CALCULATION_CODE,
p_OPERAND_VALUE,
p_SUBSTITUTION_TYPE_CODE,
p_SUBSTITUTION_VALUE_FROM,
p_SUBSTITUTION_VALUE_TO,
p_ASK_FOR_FLAG,
p_PRICE_FORMULA_ID,
p_PRICING_STATUS_CODE,
p_PRICING_STATUS_TEXT,
p_PRODUCT_PRECEDENCE,
p_INCOMPATABLILITY_GRP_CODE,
p_PROCESSED_FLAG,
p_APPLIED_FLAG,
p_AUTOMATIC_FLAG,
p_OVERRIDE_FLAG,
p_PRINT_ON_INVOICE_FLAG,
p_PRIMARY_UOM_FLAG,
p_MODIFIER_LEVEL_CODE,
p_BENEFIT_QTY,
p_BENEFIT_UOM_CODE,
p_LIST_LINE_NO,
p_ACCRUAL_FLAG,
p_ACCRUAL_CONVERSION_RATE,
p_ESTIM_ACCRUAL_RATE,
p_RECURRING_FLAG,
p_RECURRING_VALUE, -- block pricing
p_SELECTED_VOLUME_ATTR,
p_ROUNDING_FACTOR,
p_UPDATED_FLAG,
nvl(p_PROCESS_CODE,G_STATUS_NEW),
p_CHARGE_TYPE_CODE,
p_CHARGE_SUBTYPE_CODE,
p_GROUP_QUANTITY,
p_GROUP_AMOUNT,
p_CALCULATION_CODE,
P_CURRENCY_DETAIL_ID, /*vivek */
P_CURRENCY_HEADER_ID, /*vivek */
P_SELLING_ROUNDING_FACTOR, /*vivek */
P_ORDER_CURRENCY, /*vivek */
P_PRICING_EFFECTIVE_DATE,/*vivek */
P_BASE_CURRENCY_CODE,/*vivek */
p_CHANGE_REASON_CODE,
p_CHANGE_REASON_TEXT,
p_LINE_QUANTITY
,p_BREAK_UOM_CODE /* Proration */
,p_BREAK_UOM_CONTEXT /* Proration */
,p_BREAK_UOM_ATTRIBUTE /* Proration */
);
|Procedure INSERT_LDETS_PRICE_LIST_PVT
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_LDETS_PRICE_LIST_PVT
(p_LINE_DETAIL_index IN PLS_INTEGER_TYPE,
p_LINE_DETAIL_TYPE_CODE IN VARCHAR_TYPE,
p_PRICE_BREAK_TYPE_CODE IN VARCHAR_TYPE,
p_LINE_INDEX IN PLS_INTEGER_TYPE,
p_CREATED_FROM_LIST_HEADER_ID IN NUMBER_TYPE,
p_CREATED_FROM_LIST_LINE_ID IN NUMBER_TYPE,
p_CREATED_FROM_LIST_LINE_TYPE IN VARCHAR_TYPE,
p_CREATED_FROM_LIST_TYPE_CODE IN VARCHAR_TYPE,
p_CREATED_FROM_SQL IN VARCHAR_TYPE,
p_PRICING_GROUP_SEQUENCE IN PLS_INTEGER_TYPE,
P_PRICING_PHASE_ID IN PLS_INTEGER_TYPE,
p_OPERAND_CALCULATION_CODE IN VARCHAR_TYPE,
p_OPERAND_VALUE IN VARCHAR_TYPE,
p_PRICE_FORMULA_ID IN NUMBER_TYPE,
p_PRICING_STATUS_CODE IN VARCHAR_TYPE,
p_PRICING_STATUS_TEXT IN VARCHAR_TYPE,
p_PRODUCT_PRECEDENCE IN PLS_INTEGER_TYPE,
p_INCOMPATABLILITY_GRP_CODE IN VARCHAR_TYPE,
p_PROCESSED_FLAG IN VARCHAR_TYPE,
p_APPLIED_FLAG IN VARCHAR_TYPE,
p_AUTOMATIC_FLAG IN VARCHAR_TYPE,
p_PRIMARY_UOM_FLAG IN VARCHAR_TYPE,
p_MODIFIER_LEVEL_CODE IN VARCHAR_TYPE,
p_LIST_LINE_NO IN VARCHAR_TYPE,
p_ROUNDING_FACTOR IN PLS_INTEGER_TYPE,
p_BREAK_UOM_CODE IN VARCHAR_TYPE, /* Proration */
p_BREAK_UOM_CONTEXT IN VARCHAR_TYPE, /* Proration */
p_BREAK_UOM_ATTRIBUTE IN VARCHAR_TYPE, /* Proration */
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LDETS_PRICE_LIST_PVT';
INSERT INTO qp_npreq_ldets_tmp
(LINE_DETAIL_INDEX,
LINE_DETAIL_TYPE_CODE,
PRICE_BREAK_TYPE_CODE,
LINE_INDEX,
CREATED_FROM_LIST_HEADER_ID,
CREATED_FROM_LIST_LINE_ID,
CREATED_FROM_LIST_LINE_TYPE,
CREATED_FROM_LIST_TYPE_CODE,
CREATED_FROM_SQL,
PRICING_GROUP_SEQUENCE,
PRICING_PHASE_ID,
OPERAND_CALCULATION_CODE,
OPERAND_VALUE,
PRICE_FORMULA_ID,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
PRODUCT_PRECEDENCE,
INCOMPATABILITY_GRP_CODE,
PROCESSED_FLAG,
APPLIED_FLAG,
AUTOMATIC_FLAG,
PRIMARY_UOM_FLAG,
MODIFIER_LEVEL_CODE,
LIST_LINE_NO,
PROCESS_CODE,
ROUNDING_FACTOR
,BREAK_UOM_CODE /* Proration */
,BREAK_UOM_CONTEXT /* Proration */
,BREAK_UOM_ATTRIBUTE /* Proration */
)
VALUES ( p_LINE_DETAIL_INDEX(i),
p_LINE_DETAIL_TYPE_CODE(i),
p_PRICE_BREAK_TYPE_CODE(i),
p_LINE_INDEX(i),
p_CREATED_FROM_LIST_HEADER_ID(i),
p_CREATED_FROM_LIST_LINE_ID(i),
p_CREATED_FROM_LIST_LINE_TYPE(i),
p_CREATED_FROM_LIST_TYPE_CODE(i),
p_CREATED_FROM_SQL(i),
p_PRICING_GROUP_SEQUENCE(i),
p_PRICING_PHASE_ID(i),
p_OPERAND_CALCULATION_CODE(i),
p_OPERAND_VALUE(i),
p_PRICE_FORMULA_ID(i),
p_PRICING_STATUS_CODE(i),
p_PRICING_STATUS_TEXT(i),
p_PRODUCT_PRECEDENCE(i),
p_INCOMPATABLILITY_GRP_CODE(i),
p_PROCESSED_FLAG(i),
p_APPLIED_FLAG(i),
p_AUTOMATIC_FLAG(i),
p_PRIMARY_UOM_FLAG(i),
p_MODIFIER_LEVEL_CODE(i),
p_LIST_LINE_NO(i),
G_STATUS_NEW,
p_ROUNDING_FACTOR(i)
,p_BREAK_UOM_CODE(i) /* Proration */
,p_BREAK_UOM_CONTEXT(i) /* Proration */
,p_BREAK_UOM_ATTRIBUTE(i) /* Proration */
);
|Procedure INSERT_LDETS_PRICE_LIST_MULT
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_LDETS_PRICE_LIST_MULT
(p_LINE_DETAIL_index IN PLS_INTEGER_TYPE,
p_LINE_DETAIL_TYPE_CODE IN VARCHAR_TYPE,
p_PRICE_BREAK_TYPE_CODE IN VARCHAR_TYPE,
p_LINE_INDEX IN PLS_INTEGER_TYPE,
p_CREATED_FROM_LIST_HEADER_ID IN NUMBER_TYPE,
p_CREATED_FROM_LIST_LINE_ID IN NUMBER_TYPE,
p_CREATED_FROM_LIST_LINE_TYPE IN VARCHAR_TYPE,
p_CREATED_FROM_LIST_TYPE_CODE IN VARCHAR_TYPE,
p_CREATED_FROM_SQL IN VARCHAR_TYPE,
p_PRICING_GROUP_SEQUENCE IN PLS_INTEGER_TYPE,
P_PRICING_PHASE_ID IN PLS_INTEGER_TYPE,
p_OPERAND_CALCULATION_CODE IN VARCHAR_TYPE,
p_OPERAND_VALUE IN VARCHAR_TYPE,
p_PRICE_FORMULA_ID IN NUMBER_TYPE,
p_PRICING_STATUS_CODE IN VARCHAR_TYPE,
p_PRICING_STATUS_TEXT IN VARCHAR_TYPE,
p_PRODUCT_PRECEDENCE IN PLS_INTEGER_TYPE,
p_INCOMPATABLILITY_GRP_CODE IN VARCHAR_TYPE,
p_PROCESSED_FLAG IN VARCHAR_TYPE,
p_APPLIED_FLAG IN VARCHAR_TYPE,
p_AUTOMATIC_FLAG IN VARCHAR_TYPE,
p_PRIMARY_UOM_FLAG IN VARCHAR_TYPE,
p_MODIFIER_LEVEL_CODE IN VARCHAR_TYPE,
p_LIST_LINE_NO IN VARCHAR_TYPE,
p_ROUNDING_FACTOR IN PLS_INTEGER_TYPE,
p_CURRENCY_DETAIL_ID IN NUMBER_TYPE,
p_CURRENCY_HEADER_ID IN NUMBER_TYPE,
p_SELLING_ROUNDING_FACTOR IN NUMBER_TYPE,
p_ORDER_CURRENCY IN VARCHAR_TYPE,
p_PRICING_EFFECTIVE_DATE IN DATE_TYPE,
p_BASE_CURRENCY_CODE IN VARCHAR_TYPE,
p_BREAK_UOM_CODE IN VARCHAR_TYPE, /* Proration */
p_BREAK_UOM_CONTEXT IN VARCHAR_TYPE, /* Proration */
p_BREAK_UOM_ATTRIBUTE IN VARCHAR_TYPE, /* Proration */
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LDETS_PRICE_LIST_MULT';
INSERT INTO qp_npreq_ldets_tmp
(LINE_DETAIL_INDEX,
LINE_DETAIL_TYPE_CODE,
PRICE_BREAK_TYPE_CODE,
LINE_INDEX,
CREATED_FROM_LIST_HEADER_ID,
CREATED_FROM_LIST_LINE_ID,
CREATED_FROM_LIST_LINE_TYPE,
CREATED_FROM_LIST_TYPE_CODE,
CREATED_FROM_SQL,
PRICING_GROUP_SEQUENCE,
PRICING_PHASE_ID,
OPERAND_CALCULATION_CODE,
OPERAND_VALUE,
PRICE_FORMULA_ID,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
PRODUCT_PRECEDENCE,
INCOMPATABILITY_GRP_CODE,
PROCESSED_FLAG,
APPLIED_FLAG,
AUTOMATIC_FLAG,
PRIMARY_UOM_FLAG,
MODIFIER_LEVEL_CODE,
LIST_LINE_NO,
ROUNDING_FACTOR,
CURRENCY_DETAIL_ID,
CURRENCY_HEADER_ID,
SELLING_ROUNDING_FACTOR,
ORDER_CURRENCY,
PRICING_EFFECTIVE_DATE,
PROCESS_CODE,
BASE_CURRENCY_CODE
,BREAK_UOM_CODE /* Proration */
,BREAK_UOM_CONTEXT /* Proration */
,BREAK_UOM_ATTRIBUTE /* Proration */
)
VALUES ( p_LINE_DETAIL_INDEX(i),
p_LINE_DETAIL_TYPE_CODE(i),
p_PRICE_BREAK_TYPE_CODE(i),
p_LINE_INDEX(i),
p_CREATED_FROM_LIST_HEADER_ID(i),
p_CREATED_FROM_LIST_LINE_ID(i),
p_CREATED_FROM_LIST_LINE_TYPE(i),
p_CREATED_FROM_LIST_TYPE_CODE(i),
p_CREATED_FROM_SQL(i),
p_PRICING_GROUP_SEQUENCE(i),
p_PRICING_PHASE_ID(i),
p_OPERAND_CALCULATION_CODE(i),
p_OPERAND_VALUE(i),
p_PRICE_FORMULA_ID(i),
p_PRICING_STATUS_CODE(i),
p_PRICING_STATUS_TEXT(i),
p_PRODUCT_PRECEDENCE(i),
p_INCOMPATABLILITY_GRP_CODE(i),
p_PROCESSED_FLAG(i),
p_APPLIED_FLAG(i),
p_AUTOMATIC_FLAG(i),
p_PRIMARY_UOM_FLAG(i),
p_MODIFIER_LEVEL_CODE(i),
p_LIST_LINE_NO(i),
p_ROUNDING_FACTOR(i),
p_CURRENCY_DETAIL_ID(i),
p_CURRENCY_HEADER_ID(i),
p_SELLING_ROUNDING_FACTOR(i),
p_ORDER_CURRENCY(i),
p_PRICING_EFFECTIVE_DATE(i),
G_STATUS_NEW,
p_BASE_CURRENCY_CODE(i)
,p_BREAK_UOM_CODE(i) /* Proration */
,p_BREAK_UOM_CONTEXT(i) /* Proration */
,p_BREAK_UOM_ATTRIBUTE(i) /* Proration */
);
|Procedure Group INSERT_LDETS2_AT
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_LDETS2_AT
(p_LINE_DETAIL_INDEX IN PLS_INTEGER_TYPE,
p_LINE_DETAIL_TYPE_CODE IN VARCHAR_TYPE,
p_PRICE_BREAK_TYPE_CODE IN VARCHAR_TYPE,
p_LINE_INDEX IN NUMBER_TYPE,
p_LIST_HEADER_ID IN NUMBER_TYPE,
p_LIST_LINE_ID IN NUMBER_TYPE,
p_LIST_LINE_TYPE_CODE IN VARCHAR_TYPE,
p_LIST_TYPE_CODE IN VARCHAR_TYPE,
p_PRICING_GROUP_SEQUENCE IN PLS_INTEGER_TYPE,
p_PRICING_PHASE_ID IN PLS_INTEGER_TYPE,
p_OPERAND_CALCULATION_CODE IN VARCHAR_TYPE,
p_OPERAND_VALUE IN VARCHAR_TYPE,
p_SUBSTITUTION_TYPE_CODE IN VARCHAR_TYPE,
p_SUBSTITUTION_VALUE_FROM IN VARCHAR_TYPE,
p_SUBSTITUTION_VALUE_TO IN VARCHAR_TYPE,
p_PRICE_FORMULA_ID IN NUMBER_TYPE,
p_PRODUCT_PRECEDENCE IN PLS_INTEGER_TYPE,
p_INCOMPATABLILITY_GRP_CODE IN VARCHAR_TYPE,
p_APPLIED_FLAG IN VARCHAR_TYPE,
p_AUTOMATIC_FLAG IN VARCHAR_TYPE,
p_OVERRIDE_FLAG IN VARCHAR_TYPE,
p_MODIFIER_LEVEL_CODE IN VARCHAR_TYPE,
p_BENEFIT_QTY IN NUMBER_TYPE,
p_BENEFIT_UOM_CODE IN VARCHAR_TYPE,
p_LIST_LINE_NO IN VARCHAR_TYPE,
p_ACCRUAL_FLAG IN VARCHAR_TYPE,
p_ACCRUAL_CONVERSION_RATE IN NUMBER_TYPE,
p_ESTIM_ACCRUAL_RATE IN NUMBER_TYPE,
p_CHARGE_TYPE_CODE IN VARCHAR_TYPE,
p_CHARGE_SUBTYPE_CODE IN VARCHAR_TYPE,
p_LINE_QUANTITY IN NUMBER_TYPE,
p_UPDATED_FLAG IN VARCHAR_TYPE,
p_CALCULATION_CODE IN VARCHAR_TYPE,
p_CHANGE_REASON_CODE IN VARCHAR_TYPE,
p_CHANGE_REASON_TEXT IN VARCHAR_TYPE,
p_ACCUM_CONTEXT IN VARCHAR_TYPE, -- accum range break
p_ACCUM_ATTRIBUTE IN VARCHAR_TYPE, -- accum range break
p_ACCUM_FLAG IN VARCHAR_TYPE, -- accum range break
p_BREAK_UOM_CODE IN VARCHAR_TYPE, /* Proration*/
p_BREAK_UOM_CONTEXT IN VARCHAR_TYPE, /* Proration*/
p_BREAK_UOM_ATTRIBUTE IN VARCHAR_TYPE, /* Proration*/
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2) AS
PRAGMA AUTONOMOUS_TRANSACTION;
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LDETS2_AT';
/*INSERT INTO QP_INT_LDETS
(LINE_DETAIL_INDEX,
LINE_DETAIL_TYPE_CODE,
PRICE_BREAK_TYPE_CODE,
LINE_INDEX,
CREATED_FROM_LIST_HEADER_ID,
CREATED_FROM_LIST_LINE_ID,
CREATED_FROM_LIST_LINE_TYPE,
CREATED_FROM_LIST_TYPE_CODE,
PRICING_GROUP_SEQUENCE,
PRICING_PHASE_ID,
OPERAND_CALCULATION_CODE,
OPERAND_VALUE,
SUBSTITUTION_TYPE_CODE,
SUBSTITUTION_VALUE_FROM,
SUBSTITUTION_VALUE_TO,
PRICE_FORMULA_ID,
PRICING_STATUS_CODE,
PRODUCT_PRECEDENCE,
INCOMPATABILITY_GRP_CODE,
APPLIED_FLAG,
AUTOMATIC_FLAG,
OVERRIDE_FLAG,
MODIFIER_LEVEL_CODE,
BENEFIT_QTY,
BENEFIT_UOM_CODE,
LIST_LINE_NO,
ACCRUAL_FLAG,
ACCRUAL_CONVERSION_RATE,
ESTIM_ACCRUAL_RATE,
CHARGE_TYPE_CODE,
CHARGE_SUBTYPE_CODE,
PROCESS_CODE,
LINE_QUANTITY,
UPDATED_FLAG, -- begin shu, fix Bug 2599822
CALCULATION_CODE,
CHANGE_REASON_CODE,
CHANGE_REASON_TEXT,
ACCUM_CONTEXT, -- accum range break
ACCUM_ATTRIBUTE, -- accum range break
ACCUM_ATTR_RUN_SRC_FLAG,
BREAK_UOM_CODE,
BREAK_UOM_CONTEXT,
BREAK_UOM_ATTRIBUTE)
VALUES (
p_LINE_DETAIL_INDEX(i),
'NULL',
p_PRICE_BREAK_TYPE_CODE(i),
p_LINE_INDEX(i),
p_LIST_HEADER_ID(i),
p_LIST_LINE_ID(i),
p_LIST_LINE_TYPE_CODE(i),
p_LIST_TYPE_CODE(i),
p_PRICING_GROUP_SEQUENCE(i),
p_PRICING_PHASE_ID(i),
p_OPERAND_CALCULATION_CODE(i),
p_OPERAND_VALUE(i),
p_SUBSTITUTION_TYPE_CODE(i),
p_SUBSTITUTION_VALUE_FROM(i),
p_SUBSTITUTION_VALUE_TO(i),
p_PRICE_FORMULA_ID(i),
G_STATUS_NEW,
p_PRODUCT_PRECEDENCE(i),
p_INCOMPATABLILITY_GRP_CODE(i),
p_APPLIED_FLAG(i),
p_AUTOMATIC_FLAG(i),
p_OVERRIDE_FLAG(i),
p_MODIFIER_LEVEL_CODE(i),
p_BENEFIT_QTY(i),
p_BENEFIT_UOM_CODE(i),
p_LIST_LINE_NO(i),
p_ACCRUAL_FLAG(i),
p_ACCRUAL_CONVERSION_RATE(i),
p_ESTIM_ACCRUAL_RATE(i),
p_CHARGE_TYPE_CODE(i),
p_CHARGE_SUBTYPE_CODE(i),
G_STATUS_NEW,
p_LINE_QUANTITY(i),
p_UPDATED_FLAG(i),
p_CALCULATION_CODE(i),
p_CHANGE_REASON_CODE(i),
p_CHANGE_REASON_TEXT(i),
p_ACCUM_CONTEXT(i), -- accum range break
p_ACCUM_ATTRIBUTE(i), -- accum range break
p_ACCUM_FLAG(i)
,p_BREAK_UOM_CODE(i)
,p_BREAK_UOM_CONTEXT(i)
,p_BREAK_UOM_ATTRIBUTE(i)
);*/
INSERT INTO QP_INT_LDETS_T
(LINE_DETAIL_INDEX,
LINE_DETAIL_TYPE_CODE,
PRICE_BREAK_TYPE_CODE,
LINE_INDEX,
CREATED_FROM_LIST_HEADER_ID,
CREATED_FROM_LIST_LINE_ID,
CREATED_FROM_LIST_LINE_TYPE,
CREATED_FROM_LIST_TYPE_CODE,
PRICING_GROUP_SEQUENCE,
PRICING_PHASE_ID,
OPERAND_CALCULATION_CODE,
OPERAND_VALUE,
SUBSTITUTION_TYPE_CODE,
SUBSTITUTION_VALUE_FROM,
SUBSTITUTION_VALUE_TO,
PRICE_FORMULA_ID,
PRICING_STATUS_CODE,
PRODUCT_PRECEDENCE,
INCOMPATABILITY_GRP_CODE,
APPLIED_FLAG,
AUTOMATIC_FLAG,
OVERRIDE_FLAG,
MODIFIER_LEVEL_CODE,
BENEFIT_QTY,
BENEFIT_UOM_CODE,
LIST_LINE_NO,
ACCRUAL_FLAG,
ACCRUAL_CONVERSION_RATE,
ESTIM_ACCRUAL_RATE,
CHARGE_TYPE_CODE,
CHARGE_SUBTYPE_CODE,
PROCESS_CODE,
LINE_QUANTITY,
UPDATED_FLAG, -- begin shu, fix Bug 2599822
CALCULATION_CODE,
CHANGE_REASON_CODE,
CHANGE_REASON_TEXT,
ACCUM_CONTEXT, -- accum range break
ACCUM_ATTRIBUTE, -- accum range break
ACCUM_ATTR_RUN_SRC_FLAG,
BREAK_UOM_CODE, /* Proration */
BREAK_UOM_CONTEXT, /* Proration */
BREAK_UOM_ATTRIBUTE, /* Proration */
request_id)
VALUES (
p_LINE_DETAIL_INDEX(i),
'NULL',
p_PRICE_BREAK_TYPE_CODE(i),
p_LINE_INDEX(i),
p_LIST_HEADER_ID(i),
p_LIST_LINE_ID(i),
p_LIST_LINE_TYPE_CODE(i),
p_LIST_TYPE_CODE(i),
p_PRICING_GROUP_SEQUENCE(i),
p_PRICING_PHASE_ID(i),
p_OPERAND_CALCULATION_CODE(i),
p_OPERAND_VALUE(i),
p_SUBSTITUTION_TYPE_CODE(i),
p_SUBSTITUTION_VALUE_FROM(i),
p_SUBSTITUTION_VALUE_TO(i),
p_PRICE_FORMULA_ID(i),
G_STATUS_NEW,
p_PRODUCT_PRECEDENCE(i),
p_INCOMPATABLILITY_GRP_CODE(i),
p_APPLIED_FLAG(i),
p_AUTOMATIC_FLAG(i),
p_OVERRIDE_FLAG(i),
p_MODIFIER_LEVEL_CODE(i),
p_BENEFIT_QTY(i),
p_BENEFIT_UOM_CODE(i),
p_LIST_LINE_NO(i),
p_ACCRUAL_FLAG(i),
p_ACCRUAL_CONVERSION_RATE(i),
p_ESTIM_ACCRUAL_RATE(i),
p_CHARGE_TYPE_CODE(i),
p_CHARGE_SUBTYPE_CODE(i),
G_STATUS_NEW,
p_LINE_QUANTITY(i),
p_UPDATED_FLAG(i),
p_CALCULATION_CODE(i),
p_CHANGE_REASON_CODE(i),
p_CHANGE_REASON_TEXT(i),
p_ACCUM_CONTEXT(i), -- accum range break
p_ACCUM_ATTRIBUTE(i), -- accum range break
p_ACCUM_FLAG(i)
,p_BREAK_UOM_CODE(i) /* Proration */
,p_BREAK_UOM_CONTEXT(i) /* Proration */
,p_BREAK_UOM_ATTRIBUTE(i), /* Proration */
l_request_id
);
|Procedure Group INSERT_LDETS2
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_LDETS2
(p_LINE_DETAIL_INDEX IN PLS_INTEGER_TYPE,
p_LINE_DETAIL_TYPE_CODE IN VARCHAR_TYPE,
p_PRICE_BREAK_TYPE_CODE IN VARCHAR_TYPE,
p_LINE_INDEX IN NUMBER_TYPE,
p_LIST_HEADER_ID IN NUMBER_TYPE,
p_LIST_LINE_ID IN NUMBER_TYPE,
p_LIST_LINE_TYPE_CODE IN VARCHAR_TYPE,
p_LIST_TYPE_CODE IN VARCHAR_TYPE,
p_PRICING_GROUP_SEQUENCE IN PLS_INTEGER_TYPE,
p_PRICING_PHASE_ID IN PLS_INTEGER_TYPE,
p_OPERAND_CALCULATION_CODE IN VARCHAR_TYPE,
p_OPERAND_VALUE IN VARCHAR_TYPE,
p_SUBSTITUTION_TYPE_CODE IN VARCHAR_TYPE,
p_SUBSTITUTION_VALUE_FROM IN VARCHAR_TYPE,
p_SUBSTITUTION_VALUE_TO IN VARCHAR_TYPE,
p_PRICE_FORMULA_ID IN NUMBER_TYPE,
p_PRODUCT_PRECEDENCE IN PLS_INTEGER_TYPE,
p_INCOMPATABLILITY_GRP_CODE IN VARCHAR_TYPE,
p_APPLIED_FLAG IN VARCHAR_TYPE,
p_AUTOMATIC_FLAG IN VARCHAR_TYPE,
p_OVERRIDE_FLAG IN VARCHAR_TYPE,
p_MODIFIER_LEVEL_CODE IN VARCHAR_TYPE,
p_BENEFIT_QTY IN NUMBER_TYPE,
p_BENEFIT_UOM_CODE IN VARCHAR_TYPE,
p_LIST_LINE_NO IN VARCHAR_TYPE,
p_ACCRUAL_FLAG IN VARCHAR_TYPE,
p_ACCRUAL_CONVERSION_RATE IN NUMBER_TYPE,
p_ESTIM_ACCRUAL_RATE IN NUMBER_TYPE,
p_CHARGE_TYPE_CODE IN VARCHAR_TYPE,
p_CHARGE_SUBTYPE_CODE IN VARCHAR_TYPE,
p_LINE_QUANTITY IN NUMBER_TYPE,
p_UPDATED_FLAG IN VARCHAR_TYPE,
p_CALCULATION_CODE IN VARCHAR_TYPE,
p_CHANGE_REASON_CODE IN VARCHAR_TYPE,
p_CHANGE_REASON_TEXT IN VARCHAR_TYPE,
p_ACCUM_CONTEXT IN VARCHAR_TYPE, -- accum range break
p_ACCUM_ATTRIBUTE IN VARCHAR_TYPE, -- accum range break
p_ACCUM_FLAG IN VARCHAR_TYPE, -- accum range break
p_BREAK_UOM_CODE IN VARCHAR_TYPE, /* Proration*/
p_BREAK_UOM_CONTEXT IN VARCHAR_TYPE, /* Proration*/
p_BREAK_UOM_ATTRIBUTE IN VARCHAR_TYPE, /* Proration*/
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2) AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LDETS2';
INSERT INTO qp_npreq_ldets_tmp
(LINE_DETAIL_INDEX,
LINE_DETAIL_TYPE_CODE,
PRICE_BREAK_TYPE_CODE,
LINE_INDEX,
CREATED_FROM_LIST_HEADER_ID,
CREATED_FROM_LIST_LINE_ID,
CREATED_FROM_LIST_LINE_TYPE,
CREATED_FROM_LIST_TYPE_CODE,
PRICING_GROUP_SEQUENCE,
PRICING_PHASE_ID,
OPERAND_CALCULATION_CODE,
OPERAND_VALUE,
SUBSTITUTION_TYPE_CODE,
SUBSTITUTION_VALUE_FROM,
SUBSTITUTION_VALUE_TO,
PRICE_FORMULA_ID,
PRICING_STATUS_CODE,
PRODUCT_PRECEDENCE,
INCOMPATABILITY_GRP_CODE,
APPLIED_FLAG,
AUTOMATIC_FLAG,
OVERRIDE_FLAG,
MODIFIER_LEVEL_CODE,
BENEFIT_QTY,
BENEFIT_UOM_CODE,
LIST_LINE_NO,
ACCRUAL_FLAG,
ACCRUAL_CONVERSION_RATE,
ESTIM_ACCRUAL_RATE,
CHARGE_TYPE_CODE,
CHARGE_SUBTYPE_CODE,
PROCESS_CODE,
LINE_QUANTITY,
UPDATED_FLAG, -- begin shu, fix Bug 2599822
CALCULATION_CODE,
CHANGE_REASON_CODE,
CHANGE_REASON_TEXT,
ACCUM_CONTEXT, -- accum range break
ACCUM_ATTRIBUTE, -- accum range break
ACCUM_ATTR_RUN_SRC_FLAG
,BREAK_UOM_CODE /* Proration */
,BREAK_UOM_CONTEXT /* Proration */
,BREAK_UOM_ATTRIBUTE /* Proration */
)
VALUES (
p_LINE_DETAIL_INDEX(i),
'NULL',
p_PRICE_BREAK_TYPE_CODE(i),
p_LINE_INDEX(i),
p_LIST_HEADER_ID(i),
p_LIST_LINE_ID(i),
p_LIST_LINE_TYPE_CODE(i),
p_LIST_TYPE_CODE(i),
p_PRICING_GROUP_SEQUENCE(i),
p_PRICING_PHASE_ID(i),
p_OPERAND_CALCULATION_CODE(i),
p_OPERAND_VALUE(i),
p_SUBSTITUTION_TYPE_CODE(i),
p_SUBSTITUTION_VALUE_FROM(i),
p_SUBSTITUTION_VALUE_TO(i),
p_PRICE_FORMULA_ID(i),
G_STATUS_NEW,
p_PRODUCT_PRECEDENCE(i),
p_INCOMPATABLILITY_GRP_CODE(i),
p_APPLIED_FLAG(i),
p_AUTOMATIC_FLAG(i),
p_OVERRIDE_FLAG(i),
p_MODIFIER_LEVEL_CODE(i),
p_BENEFIT_QTY(i),
p_BENEFIT_UOM_CODE(i),
p_LIST_LINE_NO(i),
p_ACCRUAL_FLAG(i),
p_ACCRUAL_CONVERSION_RATE(i),
p_ESTIM_ACCRUAL_RATE(i),
p_CHARGE_TYPE_CODE(i),
p_CHARGE_SUBTYPE_CODE(i),
G_STATUS_NEW,
p_LINE_QUANTITY(i),
p_UPDATED_FLAG(i),
p_CALCULATION_CODE(i),
p_CHANGE_REASON_CODE(i),
p_CHANGE_REASON_TEXT(i),
p_ACCUM_CONTEXT(i), -- accum range break
p_ACCUM_ATTRIBUTE(i), -- accum range break
p_ACCUM_FLAG(i)
,p_BREAK_UOM_CODE(i) /* Proration */
,p_BREAK_UOM_CONTEXT(i) /* Proration */
,p_BREAK_UOM_ATTRIBUTE(i) /* Proration */
);
QP_PREQ_GRP.INSERT_LDETS2_AT
(p_LINE_DETAIL_INDEX ,
p_LINE_DETAIL_TYPE_CODE ,
p_PRICE_BREAK_TYPE_CODE ,
p_LINE_INDEX ,
p_LIST_HEADER_ID ,
p_LIST_LINE_ID ,
p_LIST_LINE_TYPE_CODE ,
p_LIST_TYPE_CODE ,
p_PRICING_GROUP_SEQUENCE ,
p_PRICING_PHASE_ID ,
p_OPERAND_CALCULATION_CODE ,
p_OPERAND_VALUE ,
p_SUBSTITUTION_TYPE_CODE ,
p_SUBSTITUTION_VALUE_FROM ,
p_SUBSTITUTION_VALUE_TO ,
p_PRICE_FORMULA_ID ,
p_PRODUCT_PRECEDENCE ,
p_INCOMPATABLILITY_GRP_CODE ,
p_APPLIED_FLAG ,
p_AUTOMATIC_FLAG ,
p_OVERRIDE_FLAG ,
p_MODIFIER_LEVEL_CODE ,
p_BENEFIT_QTY ,
p_BENEFIT_UOM_CODE ,
p_LIST_LINE_NO ,
p_ACCRUAL_FLAG ,
p_ACCRUAL_CONVERSION_RATE ,
p_ESTIM_ACCRUAL_RATE ,
p_CHARGE_TYPE_CODE ,
p_CHARGE_SUBTYPE_CODE ,
p_LINE_QUANTITY ,
p_UPDATED_FLAG ,
p_CALCULATION_CODE ,
p_CHANGE_REASON_CODE ,
p_CHANGE_REASON_TEXT ,
p_ACCUM_CONTEXT, -- accum range break
p_ACCUM_ATTRIBUTE, -- accum range break
p_ACCUM_FLAG,
p_BREAK_UOM_CODE, /* Proration */
p_BREAK_UOM_CONTEXT, /* Proration */
p_BREAK_UOM_ATTRIBUTE, /* Proration */
x_status_code ,
x_status_text );
|Procedure INSERT_LDETS_PVT
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_LDETS_PVT
(p_LINE_DETAIL_INDEX IN PLS_INTEGER_TYPE,
p_LINE_DETAIL_TYPE_CODE IN VARCHAR_TYPE,
p_PRICE_BREAK_TYPE_CODE IN VARCHAR_TYPE,
p_LINE_INDEX IN PLS_INTEGER_TYPE,
p_CREATED_FROM_LIST_HEADER_ID IN NUMBER_TYPE,
p_CREATED_FROM_LIST_LINE_ID IN NUMBER_TYPE,
p_CREATED_FROM_LIST_LINE_TYPE IN VARCHAR_TYPE,
p_CREATED_FROM_LIST_TYPE_CODE IN VARCHAR_TYPE,
p_CREATED_FROM_SQL IN VARCHAR_TYPE,
p_PRICING_GROUP_SEQUENCE IN PLS_INTEGER_TYPE,
P_PRICING_PHASE_ID IN PLS_INTEGER_TYPE,
p_OPERAND_CALCULATION_CODE IN VARCHAR_TYPE,
p_OPERAND_VALUE IN VARCHAR_TYPE,
p_NET_AMOUNT_FLAG IN VARCHAR_TYPE, --2720717, net_amount
p_ASK_FOR_FLAG IN VARCHAR_TYPE,
p_PRICE_FORMULA_ID IN NUMBER_TYPE,
p_PRICING_STATUS_CODE IN VARCHAR_TYPE,
p_PRICING_STATUS_TEXT IN VARCHAR_TYPE,
p_PRODUCT_PRECEDENCE IN PLS_INTEGER_TYPE,
p_INCOMPATABLILITY_GRP_CODE IN VARCHAR_TYPE,
p_PROCESSED_FLAG IN VARCHAR_TYPE,
p_APPLIED_FLAG IN VARCHAR_TYPE,
p_AUTOMATIC_FLAG IN VARCHAR_TYPE,
p_OVERRIDE_FLAG IN VARCHAR_TYPE,
p_PRIMARY_UOM_FLAG IN VARCHAR_TYPE,
p_MODIFIER_LEVEL_CODE IN VARCHAR_TYPE,
p_BENEFIT_QTY IN NUMBER_TYPE,
p_BENEFIT_UOM_CODE IN VARCHAR_TYPE,
p_LIST_LINE_NO IN VARCHAR_TYPE,
p_ACCRUAL_FLAG IN VARCHAR_TYPE,
p_ACCRUAL_CONVERSION_RATE IN NUMBER_TYPE,
p_ESTIM_ACCRUAL_RATE IN NUMBER_TYPE,
p_HEADER_LIMIT_EXISTS IN VARCHAR_TYPE,
p_LINE_LIMIT_EXISTS IN VARCHAR_TYPE,
p_CHARGE_TYPE_CODE IN VARCHAR_TYPE,
p_CHARGE_SUBTYPE_CODE IN VARCHAR_TYPE,
p_ACCUM_CONTEXT IN VARCHAR_TYPE, -- accum range break
p_ACCUM_ATTRIBUTE IN VARCHAR_TYPE, -- accum range break
p_ACCUM_FLAG IN VARCHAR_TYPE, -- accum range break
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LDETS_PVT';
INSERT INTO qp_npreq_ldets_tmp
(LINE_DETAIL_INDEX,
LINE_DETAIL_TYPE_CODE,
PRICE_BREAK_TYPE_CODE,
LINE_INDEX,
CREATED_FROM_LIST_HEADER_ID,
CREATED_FROM_LIST_LINE_ID,
CREATED_FROM_LIST_LINE_TYPE,
CREATED_FROM_LIST_TYPE_CODE,
CREATED_FROM_SQL,
PRICING_GROUP_SEQUENCE,
PRICING_PHASE_ID,
OPERAND_CALCULATION_CODE,
OPERAND_VALUE,
NET_AMOUNT_FLAG, --2720717, net_amount
ASK_FOR_FLAG,
PRICE_FORMULA_ID,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
PRODUCT_PRECEDENCE,
INCOMPATABILITY_GRP_CODE,
PROCESSED_FLAG,
APPLIED_FLAG,
AUTOMATIC_FLAG,
OVERRIDE_FLAG,
PRIMARY_UOM_FLAG,
MODIFIER_LEVEL_CODE,
BENEFIT_QTY,
BENEFIT_UOM_CODE,
LIST_LINE_NO,
ACCRUAL_FLAG,
ACCRUAL_CONVERSION_RATE,
ESTIM_ACCRUAL_RATE,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
PROCESS_CODE,
CHARGE_TYPE_CODE,
CHARGE_SUBTYPE_CODE,
ACCUM_CONTEXT,
ACCUM_ATTRIBUTE,
ACCUM_ATTR_RUN_SRC_FLAG)
VALUES ( p_LINE_DETAIL_INDEX(i),
p_LINE_DETAIL_TYPE_CODE(i),
p_PRICE_BREAK_TYPE_CODE(i),
p_LINE_INDEX(i),
p_CREATED_FROM_LIST_HEADER_ID(i),
p_CREATED_FROM_LIST_LINE_ID(i),
p_CREATED_FROM_LIST_LINE_TYPE(i),
p_CREATED_FROM_LIST_TYPE_CODE(i),
p_CREATED_FROM_SQL(i),
p_PRICING_GROUP_SEQUENCE(i),
p_PRICING_PHASE_ID(i),
p_OPERAND_CALCULATION_CODE(i),
p_OPERAND_VALUE(i),
p_NET_AMOUNT_FLAG(i), --2720717, net_amount
p_ASK_FOR_FLAG(i),
p_PRICE_FORMULA_ID(i),
p_PRICING_STATUS_CODE(i),
p_PRICING_STATUS_TEXT(i),
p_PRODUCT_PRECEDENCE(i),
p_INCOMPATABLILITY_GRP_CODE(i),
p_PROCESSED_FLAG(i),
p_APPLIED_FLAG(i),
p_AUTOMATIC_FLAG(i),
p_OVERRIDE_FLAG(i),
p_PRIMARY_UOM_FLAG(i),
p_MODIFIER_LEVEL_CODE(i),
p_BENEFIT_QTY(i),
p_BENEFIT_UOM_CODE(i),
p_LIST_LINE_NO(i),
p_ACCRUAL_FLAG(i),
p_ACCRUAL_CONVERSION_RATE(i),
p_ESTIM_ACCRUAL_RATE(i),
decode(p_HEADER_LIMIT_EXISTS(i),'Y','Y',decode(p_LINE_LIMIT_EXISTS(i),'Y','Y','N')),
p_LINE_LIMIT_EXISTS(i),
G_STATUS_NEW,
p_CHARGE_TYPE_CODE(i),
p_CHARGE_SUBTYPE_CODE(i),
p_ACCUM_CONTEXT(i),
p_ACCUM_ATTRIBUTE(i),
p_ACCUM_FLAG(i));
|Procedure Public INSERT_LDETS2_AT
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_LDETS2_AT
(p_LINE_DETAIL_index IN PLS_INTEGER_TYPE,
p_LINE_DETAIL_TYPE_CODE IN VARCHAR_TYPE,
p_PRICE_BREAK_TYPE_CODE IN VARCHAR_TYPE,
p_LIST_PRICE IN NUMBER_TYPE,
p_LINE_INDEX IN PLS_INTEGER_TYPE,
p_CREATED_FROM_LIST_HEADER_ID IN NUMBER_TYPE,
p_CREATED_FROM_LIST_LINE_ID IN NUMBER_TYPE,
p_CREATED_FROM_LIST_LINE_TYPE IN VARCHAR_TYPE,
p_CREATED_FROM_LIST_TYPE_CODE IN VARCHAR_TYPE,
p_CREATED_FROM_SQL IN VARCHAR_TYPE,
p_PRICING_GROUP_SEQUENCE IN PLS_INTEGER_TYPE,
P_PRICING_PHASE_ID IN PLS_INTEGER_TYPE,
p_OPERAND_CALCULATION_CODE IN VARCHAR_TYPE,
p_OPERAND_VALUE IN VARCHAR_TYPE,
p_SUBSTITUTION_TYPE_CODE IN VARCHAR_TYPE,
p_SUBSTITUTION_VALUE_FROM IN VARCHAR_TYPE,
p_SUBSTITUTION_VALUE_TO IN VARCHAR_TYPE,
p_ASK_FOR_FLAG IN VARCHAR_TYPE,
p_PRICE_FORMULA_ID IN NUMBER_TYPE,
p_PRICING_STATUS_CODE IN VARCHAR_TYPE,
p_PRICING_STATUS_TEXT IN VARCHAR_TYPE,
p_PRODUCT_PRECEDENCE IN PLS_INTEGER_TYPE,
p_INCOMPATABLILITY_GRP_CODE IN VARCHAR_TYPE,
p_PROCESSED_FLAG IN VARCHAR_TYPE,
p_APPLIED_FLAG IN VARCHAR_TYPE,
p_AUTOMATIC_FLAG IN VARCHAR_TYPE,
p_OVERRIDE_FLAG IN VARCHAR_TYPE,
p_PRIMARY_UOM_FLAG IN VARCHAR_TYPE,
p_PRINT_ON_INVOICE_FLAG IN VARCHAR_TYPE,
p_MODIFIER_LEVEL_CODE IN VARCHAR_TYPE,
p_BENEFIT_QTY IN NUMBER_TYPE,
p_BENEFIT_UOM_CODE IN VARCHAR_TYPE,
p_LIST_LINE_NO IN VARCHAR_TYPE,
p_ACCRUAL_FLAG IN VARCHAR_TYPE,
p_ACCRUAL_CONVERSION_RATE IN NUMBER_TYPE,
p_ESTIM_ACCRUAL_RATE IN NUMBER_TYPE,
p_RECURRING_FLAG IN VARCHAR_TYPE,
p_SELECTED_VOLUME_ATTR IN VARCHAR_TYPE,
p_ROUNDING_FACTOR IN PLS_INTEGER_TYPE,
p_HEADER_LIMIT_EXISTS IN VARCHAR_TYPE,
p_LINE_LIMIT_EXISTS IN VARCHAR_TYPE,
p_CHARGE_TYPE_CODE IN VARCHAR_TYPE,
p_CHARGE_SUBTYPE_CODE IN VARCHAR_TYPE,
p_CURRENCY_DETAIL_ID IN NUMBER_TYPE,
p_CURRENCY_HEADER_ID IN NUMBER_TYPE,
p_SELLING_ROUNDING_FACTOR IN NUMBER_TYPE,
p_ORDER_CURRENCY IN VARCHAR_TYPE,
p_PRICING_EFFECTIVE_DATE IN DATE_TYPE,
p_BASE_CURRENCY_CODE IN VARCHAR_TYPE,
p_LINE_QUANTITY IN NUMBER_TYPE,
p_UPDATED_FLAG IN VARCHAR_TYPE,
p_CALCULATION_CODE IN VARCHAR_TYPE,
p_CHANGE_REASON_CODE IN VARCHAR_TYPE,
p_CHANGE_REASON_TEXT IN VARCHAR_TYPE,
p_PRICE_ADJUSTMENT_ID IN NUMBER_TYPE, -- bug 3099847
p_ACCUM_CONTEXT IN VARCHAR_TYPE, -- accum range break
p_ACCUM_ATTRIBUTE IN VARCHAR_TYPE, -- accum range break
p_ACCUM_FLAG IN VARCHAR_TYPE, -- accum range break
p_BREAK_UOM_CODE IN VARCHAR_TYPE, /* Proration*/
p_BREAK_UOM_CONTEXT IN VARCHAR_TYPE, /* Proration*/
p_BREAK_UOM_ATTRIBUTE IN VARCHAR_TYPE, /* Proration*/
p_PROCESS_CODE IN VARCHAR_TYPE, -- 3215497
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
PRAGMA AUTONOMOUS_TRANSACTION;
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LDETS2';
QP_PREQ_GRP.engine_debug('G_LINE_DETAIL_INDEX b4 insert_ldets2 '||G_LINE_DETAIL_INDEX);
INSERT INTO QP_INT_LDETS_T
( LINE_DETAIL_INDEX,
LINE_DETAIL_TYPE_CODE,
PRICE_BREAK_TYPE_CODE,
LINE_INDEX,
CREATED_FROM_LIST_HEADER_ID,
CREATED_FROM_LIST_LINE_ID,
CREATED_FROM_LIST_LINE_TYPE,
CREATED_FROM_LIST_TYPE_CODE,
CREATED_FROM_SQL,
PRICING_GROUP_SEQUENCE,
PRICING_PHASE_ID,
OPERAND_CALCULATION_CODE,
OPERAND_VALUE,
SUBSTITUTION_TYPE_CODE,
SUBSTITUTION_VALUE_FROM,
SUBSTITUTION_VALUE_TO,
ASK_FOR_FLAG,
PRICE_FORMULA_ID,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
PRODUCT_PRECEDENCE,
INCOMPATABILITY_GRP_CODE,
PROCESSED_FLAG,
APPLIED_FLAG,
AUTOMATIC_FLAG,
OVERRIDE_FLAG,
PRINT_ON_INVOICE_FLAG,
PRIMARY_UOM_FLAG,
MODIFIER_LEVEL_CODE,
BENEFIT_QTY,
BENEFIT_UOM_CODE,
LIST_LINE_NO,
ACCRUAL_FLAG,
ACCRUAL_CONVERSION_RATE,
ESTIM_ACCRUAL_RATE,
RECURRING_FLAG,
SELECTED_VOLUME_ATTR,
ROUNDING_FACTOR,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
CHARGE_TYPE_CODE,
CHARGE_SUBTYPE_CODE,
CURRENCY_DETAIL_ID, /*sunilpandey */
CURRENCY_HEADER_ID, /*vivek */
SELLING_ROUNDING_FACTOR, /*vivek */
ORDER_CURRENCY, /*vivek */
PRICING_EFFECTIVE_DATE,/*vivek */
BASE_CURRENCY_CODE,/*vivek */
PROCESS_CODE,
LINE_QUANTITY,
UPDATED_FLAG, -- begin shu fix bug 2599822
CALCULATION_CODE,
CHANGE_REASON_CODE,
CHANGE_REASON_TEXT, -- end shu fix bug 2599822
PRICE_ADJUSTMENT_ID, -- bug 3099847
ACCUM_CONTEXT, -- accum range break
ACCUM_ATTRIBUTE, -- accum range break
ACCUM_ATTR_RUN_SRC_FLAG, -- accum range break
BREAK_UOM_CODE, /* Proration */
BREAK_UOM_CONTEXT, /* Proration */
BREAK_UOM_ATTRIBUTE, /* Proration */
request_id
)
VALUES ( p_LINE_DETAIL_INDEX(i),
p_LINE_DETAIL_TYPE_CODE(i),
p_PRICE_BREAK_TYPE_CODE(i),
p_LINE_INDEX(i),
p_CREATED_FROM_LIST_HEADER_ID(i),
p_CREATED_FROM_LIST_LINE_ID(i),
p_CREATED_FROM_LIST_LINE_TYPE(i),
p_CREATED_FROM_LIST_TYPE_CODE(i),
p_CREATED_FROM_SQL(i),
p_PRICING_GROUP_SEQUENCE(i),
p_PRICING_PHASE_ID(i),
p_OPERAND_CALCULATION_CODE(i),
p_OPERAND_VALUE(i),
p_SUBSTITUTION_TYPE_CODE(i),
p_SUBSTITUTION_VALUE_FROM(i),
p_SUBSTITUTION_VALUE_TO(i),
p_ASK_FOR_FLAG(i),
p_PRICE_FORMULA_ID(i),
p_PRICING_STATUS_CODE(i),
p_PRICING_STATUS_TEXT(i),
p_PRODUCT_PRECEDENCE(i),
p_INCOMPATABLILITY_GRP_CODE(i),
p_PROCESSED_FLAG(i),
p_APPLIED_FLAG(i),
p_AUTOMATIC_FLAG(i),
p_OVERRIDE_FLAG(i),
p_PRINT_ON_INVOICE_FLAG(i),
p_PRIMARY_UOM_FLAG(i),
p_MODIFIER_LEVEL_CODE(i),
p_BENEFIT_QTY(i),
p_BENEFIT_UOM_CODE(i),
p_LIST_LINE_NO(i),
p_ACCRUAL_FLAG(i),
p_ACCRUAL_CONVERSION_RATE(i),
p_ESTIM_ACCRUAL_RATE(i),
p_RECURRING_FLAG(i),
p_SELECTED_VOLUME_ATTR(i),
p_ROUNDING_FACTOR(i),
decode(p_HEADER_LIMIT_EXISTS(i),'Y','Y',decode(p_LINE_LIMIT_EXISTS(i),'Y','Y','N')),
p_LINE_LIMIT_EXISTS(i),
p_CHARGE_TYPE_CODE(i),
p_CHARGE_SUBTYPE_CODE(i),
p_CURRENCY_DETAIL_ID(i), /* sunilpandey */
p_CURRENCY_HEADER_ID(i), /* vivek */
p_SELLING_ROUNDING_FACTOR(i), /* vivek */
p_ORDER_CURRENCY(i), /* vivek */
p_PRICING_EFFECTIVE_DATE(i), /* vivek */
p_BASE_CURRENCY_CODE(i), /* vivek */
p_PROCESS_CODE(i), -- 3215497, changed from G_STATUS_NEW
p_LINE_QUANTITY(i),
p_UPDATED_FLAG(i), -- begin shu fix bug 2599822
p_CALCULATION_CODE(i),
p_CHANGE_REASON_CODE(i),
p_CHANGE_REASON_TEXT(i), -- end shu fix bug 2599822
p_PRICE_ADJUSTMENT_ID(i), -- bug 3099847
p_ACCUM_CONTEXT(i), -- accum range break
p_ACCUM_ATTRIBUTE(i), -- accum range break
p_ACCUM_FLAG(i), -- accum range break
p_BREAK_UOM_CODE(i), /* Proration */
p_BREAK_UOM_CONTEXT(i), /* Proration */
p_BREAK_UOM_ATTRIBUTE(i), /* Proration */
l_request_id
);
|Procedure Public INSERT_LDETS2
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_LDETS2
(p_LINE_DETAIL_index IN PLS_INTEGER_TYPE,
p_LINE_DETAIL_TYPE_CODE IN VARCHAR_TYPE,
p_PRICE_BREAK_TYPE_CODE IN VARCHAR_TYPE,
p_LIST_PRICE IN NUMBER_TYPE,
p_LINE_INDEX IN PLS_INTEGER_TYPE,
p_CREATED_FROM_LIST_HEADER_ID IN NUMBER_TYPE,
p_CREATED_FROM_LIST_LINE_ID IN NUMBER_TYPE,
p_CREATED_FROM_LIST_LINE_TYPE IN VARCHAR_TYPE,
p_CREATED_FROM_LIST_TYPE_CODE IN VARCHAR_TYPE,
p_CREATED_FROM_SQL IN VARCHAR_TYPE,
p_PRICING_GROUP_SEQUENCE IN PLS_INTEGER_TYPE,
P_PRICING_PHASE_ID IN PLS_INTEGER_TYPE,
p_OPERAND_CALCULATION_CODE IN VARCHAR_TYPE,
p_OPERAND_VALUE IN VARCHAR_TYPE,
p_SUBSTITUTION_TYPE_CODE IN VARCHAR_TYPE,
p_SUBSTITUTION_VALUE_FROM IN VARCHAR_TYPE,
p_SUBSTITUTION_VALUE_TO IN VARCHAR_TYPE,
p_ASK_FOR_FLAG IN VARCHAR_TYPE,
p_PRICE_FORMULA_ID IN NUMBER_TYPE,
p_PRICING_STATUS_CODE IN VARCHAR_TYPE,
p_PRICING_STATUS_TEXT IN VARCHAR_TYPE,
p_PRODUCT_PRECEDENCE IN PLS_INTEGER_TYPE,
p_INCOMPATABLILITY_GRP_CODE IN VARCHAR_TYPE,
p_PROCESSED_FLAG IN VARCHAR_TYPE,
p_APPLIED_FLAG IN VARCHAR_TYPE,
p_AUTOMATIC_FLAG IN VARCHAR_TYPE,
p_OVERRIDE_FLAG IN VARCHAR_TYPE,
p_PRIMARY_UOM_FLAG IN VARCHAR_TYPE,
p_PRINT_ON_INVOICE_FLAG IN VARCHAR_TYPE,
p_MODIFIER_LEVEL_CODE IN VARCHAR_TYPE,
p_BENEFIT_QTY IN NUMBER_TYPE,
p_BENEFIT_UOM_CODE IN VARCHAR_TYPE,
p_LIST_LINE_NO IN VARCHAR_TYPE,
p_ACCRUAL_FLAG IN VARCHAR_TYPE,
p_ACCRUAL_CONVERSION_RATE IN NUMBER_TYPE,
p_ESTIM_ACCRUAL_RATE IN NUMBER_TYPE,
p_RECURRING_FLAG IN VARCHAR_TYPE,
p_SELECTED_VOLUME_ATTR IN VARCHAR_TYPE,
p_ROUNDING_FACTOR IN PLS_INTEGER_TYPE,
p_HEADER_LIMIT_EXISTS IN VARCHAR_TYPE,
p_LINE_LIMIT_EXISTS IN VARCHAR_TYPE,
p_CHARGE_TYPE_CODE IN VARCHAR_TYPE,
p_CHARGE_SUBTYPE_CODE IN VARCHAR_TYPE,
p_CURRENCY_DETAIL_ID IN NUMBER_TYPE,
p_CURRENCY_HEADER_ID IN NUMBER_TYPE,
p_SELLING_ROUNDING_FACTOR IN NUMBER_TYPE,
p_ORDER_CURRENCY IN VARCHAR_TYPE,
p_PRICING_EFFECTIVE_DATE IN DATE_TYPE,
p_BASE_CURRENCY_CODE IN VARCHAR_TYPE,
p_LINE_QUANTITY IN NUMBER_TYPE,
p_UPDATED_FLAG IN VARCHAR_TYPE,
p_CALCULATION_CODE IN VARCHAR_TYPE,
p_CHANGE_REASON_CODE IN VARCHAR_TYPE,
p_CHANGE_REASON_TEXT IN VARCHAR_TYPE,
p_PRICE_ADJUSTMENT_ID IN NUMBER_TYPE, -- bug 3099847
p_ACCUM_CONTEXT IN VARCHAR_TYPE, -- accum range break
p_ACCUM_ATTRIBUTE IN VARCHAR_TYPE, -- accum range break
p_ACCUM_FLAG IN VARCHAR_TYPE, -- accum range break
p_BREAK_UOM_CODE IN VARCHAR_TYPE, /* Proration*/
p_BREAK_UOM_CONTEXT IN VARCHAR_TYPE, /* Proration*/
p_BREAK_UOM_ATTRIBUTE IN VARCHAR_TYPE, /* Proration*/
p_PROCESS_CODE IN VARCHAR_TYPE, -- 3215497
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LDETS2';
engine_debug('G_LINE_DETAIL_INDEX b4 insert_ldets2 '||G_LINE_DETAIL_INDEX);
IF p_UPDATED_FLAG.count = 0 THEN
FOR i IN p_LINE_DETAIL_INDEX.FIRST .. p_LINE_DETAIL_INDEX.LAST LOOP
G_UPDATED_FLAG_DEF_TBL(i) := NULL;
G_UPDATED_FLAG_DEF_TBL(i) := p_UPDATED_FLAG(i);
INSERT INTO qp_npreq_ldets_tmp
(LINE_DETAIL_INDEX,
LINE_DETAIL_TYPE_CODE,
PRICE_BREAK_TYPE_CODE,
LINE_INDEX,
CREATED_FROM_LIST_HEADER_ID,
CREATED_FROM_LIST_LINE_ID,
CREATED_FROM_LIST_LINE_TYPE,
CREATED_FROM_LIST_TYPE_CODE,
CREATED_FROM_SQL,
PRICING_GROUP_SEQUENCE,
PRICING_PHASE_ID,
OPERAND_CALCULATION_CODE,
OPERAND_VALUE,
SUBSTITUTION_TYPE_CODE,
SUBSTITUTION_VALUE_FROM,
SUBSTITUTION_VALUE_TO,
ASK_FOR_FLAG,
PRICE_FORMULA_ID,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
PRODUCT_PRECEDENCE,
INCOMPATABILITY_GRP_CODE,
PROCESSED_FLAG,
APPLIED_FLAG,
AUTOMATIC_FLAG,
OVERRIDE_FLAG,
PRINT_ON_INVOICE_FLAG,
PRIMARY_UOM_FLAG,
MODIFIER_LEVEL_CODE,
BENEFIT_QTY,
BENEFIT_UOM_CODE,
LIST_LINE_NO,
ACCRUAL_FLAG,
ACCRUAL_CONVERSION_RATE,
ESTIM_ACCRUAL_RATE,
RECURRING_FLAG,
SELECTED_VOLUME_ATTR,
ROUNDING_FACTOR,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
CHARGE_TYPE_CODE,
CHARGE_SUBTYPE_CODE,
CURRENCY_DETAIL_ID, /*sunilpandey */
CURRENCY_HEADER_ID, /*vivek */
SELLING_ROUNDING_FACTOR, /*vivek */
ORDER_CURRENCY, /*vivek */
PRICING_EFFECTIVE_DATE,/*vivek */
BASE_CURRENCY_CODE,/*vivek */
PROCESS_CODE,
LINE_QUANTITY,
UPDATED_FLAG, -- begin shu fix bug 2599822
CALCULATION_CODE,
CHANGE_REASON_CODE,
CHANGE_REASON_TEXT, -- end shu fix bug 2599822
PRICE_ADJUSTMENT_ID, -- bug 3099847
ACCUM_CONTEXT, -- accum range break
ACCUM_ATTRIBUTE, -- accum range break
ACCUM_ATTR_RUN_SRC_FLAG, -- accum range break
BREAK_UOM_CODE, /* Proration */
BREAK_UOM_CONTEXT, /* Proration */
BREAK_UOM_ATTRIBUTE /* Proration */
)
VALUES ( p_LINE_DETAIL_INDEX(i),
p_LINE_DETAIL_TYPE_CODE(i),
p_PRICE_BREAK_TYPE_CODE(i),
p_LINE_INDEX(i),
p_CREATED_FROM_LIST_HEADER_ID(i),
p_CREATED_FROM_LIST_LINE_ID(i),
p_CREATED_FROM_LIST_LINE_TYPE(i),
p_CREATED_FROM_LIST_TYPE_CODE(i),
p_CREATED_FROM_SQL(i),
p_PRICING_GROUP_SEQUENCE(i),
p_PRICING_PHASE_ID(i),
p_OPERAND_CALCULATION_CODE(i),
p_OPERAND_VALUE(i),
p_SUBSTITUTION_TYPE_CODE(i),
p_SUBSTITUTION_VALUE_FROM(i),
p_SUBSTITUTION_VALUE_TO(i),
p_ASK_FOR_FLAG(i),
p_PRICE_FORMULA_ID(i),
p_PRICING_STATUS_CODE(i),
p_PRICING_STATUS_TEXT(i),
p_PRODUCT_PRECEDENCE(i),
p_INCOMPATABLILITY_GRP_CODE(i),
p_PROCESSED_FLAG(i),
p_APPLIED_FLAG(i),
p_AUTOMATIC_FLAG(i),
p_OVERRIDE_FLAG(i),
p_PRINT_ON_INVOICE_FLAG(i),
p_PRIMARY_UOM_FLAG(i),
p_MODIFIER_LEVEL_CODE(i),
p_BENEFIT_QTY(i),
p_BENEFIT_UOM_CODE(i),
p_LIST_LINE_NO(i),
p_ACCRUAL_FLAG(i),
p_ACCRUAL_CONVERSION_RATE(i),
p_ESTIM_ACCRUAL_RATE(i),
p_RECURRING_FLAG(i),
p_SELECTED_VOLUME_ATTR(i),
p_ROUNDING_FACTOR(i),
decode(p_HEADER_LIMIT_EXISTS(i),'Y','Y',decode(p_LINE_LIMIT_EXISTS(i),'Y','Y','N')),
p_LINE_LIMIT_EXISTS(i),
p_CHARGE_TYPE_CODE(i),
p_CHARGE_SUBTYPE_CODE(i),
G_CURRENCY_DETAIL_ID_DEF_TBL(i), /* sunilpandey */
G_CURRENCY_HEADER_ID_DEF_TBL(i), /* vivek */
G_SELLING_ROUNDING_DEF_TBL(i), /* vivek */
G_ORDER_CURRENCY_DEF_TBL(i), /* vivek */
G_PRICING_EFF_DATE_DEF_TBL(i), /* vivek */
G_BASE_CURRENCY_DEF_TBL(i), /* vivek */
G_PROCESS_CODE_DEF_TBL(i), -- 3215497, changed from G_STATUS_NEW,
G_LDET_LINE_QUANTITY_TBL(i),
G_UPDATED_FLAG_DEF_TBL(i), -- begin shu fix bug 2599822
G_CALCULATION_CODE_DEF_TBL(i),
G_CHANGE_REASON_CODE_DEF_TBL(i),
G_CHANGE_REASON_TEXT_DEF_TBL(i), -- end shu fix bug 2599822
G_PRICE_ADJUSTMENT_ID_DEF_TBL(i), -- bug 3099847
G_ACCUM_CONTEXT_DEF_TBL(i), -- accum range break
G_ACCUM_ATTRIBUTE_DEF_TBL(i), -- accum range break
G_ACCUM_FLAG_DEF_TBL(i), -- accum range break
G_BREAK_UOM_CODE_DEF_TBL(i), /* Proration */
G_BREAK_UOM_CONTEXT_DEF_TBL(i), /* Proration */
G_BREAK_UOM_ATTRIBUTE_DEF_TBL(i) /* Proration */
);
QP_PREQ_GRP.INSERT_LDETS2_AT
(p_LINE_DETAIL_index ,
p_LINE_DETAIL_TYPE_CODE ,
p_PRICE_BREAK_TYPE_CODE ,
p_LIST_PRICE ,
p_LINE_INDEX ,
p_CREATED_FROM_LIST_HEADER_ID ,
p_CREATED_FROM_LIST_LINE_ID ,
p_CREATED_FROM_LIST_LINE_TYPE ,
p_CREATED_FROM_LIST_TYPE_CODE ,
p_CREATED_FROM_SQL ,
p_PRICING_GROUP_SEQUENCE ,
P_PRICING_PHASE_ID ,
p_OPERAND_CALCULATION_CODE ,
p_OPERAND_VALUE ,
p_SUBSTITUTION_TYPE_CODE ,
p_SUBSTITUTION_VALUE_FROM ,
p_SUBSTITUTION_VALUE_TO ,
p_ASK_FOR_FLAG ,
p_PRICE_FORMULA_ID ,
p_PRICING_STATUS_CODE ,
p_PRICING_STATUS_TEXT ,
p_PRODUCT_PRECEDENCE ,
p_INCOMPATABLILITY_GRP_CODE ,
p_PROCESSED_FLAG ,
p_APPLIED_FLAG ,
p_AUTOMATIC_FLAG ,
p_OVERRIDE_FLAG ,
p_PRIMARY_UOM_FLAG ,
p_PRINT_ON_INVOICE_FLAG ,
p_MODIFIER_LEVEL_CODE ,
p_BENEFIT_QTY ,
p_BENEFIT_UOM_CODE ,
p_LIST_LINE_NO ,
p_ACCRUAL_FLAG ,
p_ACCRUAL_CONVERSION_RATE ,
p_ESTIM_ACCRUAL_RATE ,
p_RECURRING_FLAG ,
p_SELECTED_VOLUME_ATTR ,
p_ROUNDING_FACTOR ,
p_HEADER_LIMIT_EXISTS ,
p_LINE_LIMIT_EXISTS ,
p_CHARGE_TYPE_CODE ,
p_CHARGE_SUBTYPE_CODE ,
G_CURRENCY_DETAIL_ID_DEF_TBL, /* sunilpandey */
G_CURRENCY_HEADER_ID_DEF_TBL, /* vivek */
G_SELLING_ROUNDING_DEF_TBL, /* vivek */
G_ORDER_CURRENCY_DEF_TBL, /* vivek */
G_PRICING_EFF_DATE_DEF_TBL, /* vivek */
G_BASE_CURRENCY_DEF_TBL, /* vivek */
G_LDET_LINE_QUANTITY_TBL,
G_UPDATED_FLAG_DEF_TBL, -- begin shu fix bug 2599822
G_CALCULATION_CODE_DEF_TBL,
G_CHANGE_REASON_CODE_DEF_TBL,
G_CHANGE_REASON_TEXT_DEF_TBL, -- end shu fix bug 2599822
G_PRICE_ADJUSTMENT_ID_DEF_TBL, -- bug 3099847
G_ACCUM_CONTEXT_DEF_TBL, -- accum range break
G_ACCUM_ATTRIBUTE_DEF_TBL, -- accum range break
G_ACCUM_FLAG_DEF_TBL, -- accum range break
G_BREAK_UOM_CODE_DEF_TBL, /* Proration */
G_BREAK_UOM_CONTEXT_DEF_TBL, /* Proration */
G_BREAK_UOM_ATTRIBUTE_DEF_TBL, /* Proration */
G_PROCESS_CODE_DEF_TBL, -- 3215497
x_status_code ,
x_status_text );
G_CURRENCY_DETAIL_ID_DEF_TBL.delete;
G_CURRENCY_HEADER_ID_DEF_TBL.delete;
G_SELLING_ROUNDING_DEF_TBL.delete;
G_ORDER_CURRENCY_DEF_TBL.delete;
G_PRICING_EFF_DATE_DEF_TBL.delete;
G_BASE_CURRENCY_DEF_TBL.delete;
G_LDET_LINE_QUANTITY_TBL.delete;
G_UPDATED_FLAG_DEF_TBL.delete; -- begin shu fix bug 2599822
G_CALCULATION_CODE_DEF_TBL.delete;
G_CHANGE_REASON_CODE_DEF_TBL.delete;
G_CHANGE_REASON_TEXT_DEF_TBL.delete; -- end shu fix bug 2599822
G_PRICE_ADJUSTMENT_ID_DEF_TBL.delete; -- bug 3099847
G_ACCUM_CONTEXT_DEF_TBL.delete; -- accum range break
G_ACCUM_ATTRIBUTE_DEF_TBL.delete; -- accum range break
G_ACCUM_FLAG_DEF_TBL.delete; -- accum range break
G_BREAK_UOM_CODE_DEF_TBL.delete; /* Proration */
G_BREAK_UOM_CONTEXT_DEF_TBL.delete; /* Proration */
G_BREAK_UOM_ATTRIBUTE_DEF_TBL.delete; /* Proration */
G_PROCESS_CODE_DEF_TBL.delete; -- 3215497
|Procedure INSERT_RLTD_LINES2_AT, API to insert relationship data
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_RLTD_LINES2_AT(
p_LINE_INDEX IN PLS_INTEGER_TYPE,
p_LINE_DETAIL_INDEX IN PLS_INTEGER_TYPE,
p_RELATIONSHIP_TYPE_CODE IN VARCHAR_TYPE,
p_RELATED_LINE_INDEX IN PLS_INTEGER_TYPE,
p_RELATED_LINE_DETAIL_INDEX IN PLS_INTEGER_TYPE,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2,
p_LIST_LINE_ID IN NUMBER_TYPE, /* bug 3020816 */
p_RELATED_LIST_LINE_ID IN NUMBER_TYPE, /* bug 3020816 */
p_pricing_status_text IN VARCHAR_TYPE)
IS
PRAGMA AUTONOMOUS_TRANSACTION;
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_RLTD_LINES2_AT';
INSERT INTO QP_INT_RLTD_LINES_T (
LINE_INDEX,
LINE_DETAIL_INDEX,
RELATIONSHIP_TYPE_CODE,
RELATED_LINE_INDEX,
RELATED_LINE_DETAIL_INDEX,
REQUEST_TYPE_CODE,
PRICING_STATUS_CODE,
LIST_LINE_ID,
RELATED_LIST_LINE_ID,
PRICING_STATUS_TEXT,
request_id)
VALUES ( p_LINE_INDEX (i),
p_LINE_DETAIL_INDEX(i),
p_RELATIONSHIP_TYPE_CODE(i),
p_RELATED_LINE_INDEX(i),
p_RELATED_LINE_DETAIL_INDEX(i),
'NULL', -- ASK PRIYA
G_STATUS_NEW, -- SHOULD THIS BE UNCHANGED??, SHU, WHAT HAPPENED TO SERVICE LINE
p_list_line_id(i),
p_related_list_line_id(i),
p_pricing_status_text(i),
l_request_id
);
|Procedure INSERT_RLTD_LINES2, API to insert relationship data
+----------------------------------------------------------------------
*/
PROCEDURE INSERT_RLTD_LINES2(
p_LINE_INDEX IN PLS_INTEGER_TYPE,
p_LINE_DETAIL_INDEX IN PLS_INTEGER_TYPE,
p_RELATIONSHIP_TYPE_CODE IN VARCHAR_TYPE,
p_RELATED_LINE_INDEX IN PLS_INTEGER_TYPE,
p_RELATED_LINE_DETAIL_INDEX IN PLS_INTEGER_TYPE,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2,
p_LIST_LINE_ID IN NUMBER_TYPE, /* bug 3020816 */
p_RELATED_LIST_LINE_ID IN NUMBER_TYPE, /* bug 3020816 */
p_PRICING_STATUS_TEXT IN VARCHAR_TYPE) --added for Java Engine
IS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_RLTD_LINES2';
INSERT INTO qp_npreq_rltd_lines_tmp (
LINE_INDEX,
LINE_DETAIL_INDEX,
RELATIONSHIP_TYPE_CODE,
RELATED_LINE_INDEX,
RELATED_LINE_DETAIL_INDEX,
REQUEST_TYPE_CODE,
PRICING_STATUS_CODE,
LIST_LINE_ID,
RELATED_LIST_LINE_ID)
VALUES (
p_LINE_INDEX (i),
p_LINE_DETAIL_INDEX(i),
p_RELATIONSHIP_TYPE_CODE(i),
p_RELATED_LINE_INDEX(i),
p_RELATED_LINE_DETAIL_INDEX(i),
'NULL', -- ASK PRIYA
G_STATUS_NEW, -- SHOULD THIS BE UNCHANGED??, SHU, WHAT HAPPENED TO SERVICE LINE
G_LIST_LINE_ID_DEF_TBL(i),
G_RLTD_LIST_LINE_ID_DEF_TBL(i)
);
QP_PREQ_GRP.INSERT_RLTD_LINES2_AT
(p_LINE_INDEX ,
p_LINE_DETAIL_INDEX ,
p_RELATIONSHIP_TYPE_CODE ,
p_RELATED_LINE_INDEX ,
p_RELATED_LINE_DETAIL_INDEX ,
x_status_code ,
x_status_text,
G_LIST_LINE_ID_DEF_TBL,
G_RLTD_LIST_LINE_ID_DEF_TBL,
G_PRICING_STATUS_TEXT_DEF_TBL);
G_LIST_LINE_ID_DEF_TBL.delete;
G_RLTD_LIST_LINE_ID_DEF_TBL.delete;
G_PRICING_STATUS_TEXT_DEF_TBL.delete;
END INSERT_RLTD_LINES2; -- public version
|Procedure INSERT_RLTD_LINES2, overloaded version, bug 3215497
+----------------------------------------------------------------------*/
PROCEDURE INSERT_RLTD_LINES2(
p_LINE_INDEX IN NUMBER_TYPE,
p_LINE_DETAIL_INDEX IN NUMBER_TYPE,
p_RELATIONSHIP_TYPE_CODE IN VARCHAR_TYPE,
p_RELATED_LINE_INDEX IN NUMBER_TYPE,
p_RELATED_LINE_DETAIL_INDEX IN NUMBER_TYPE,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2,
p_LIST_LINE_ID IN NUMBER_TYPE, /* bug 3020816 */
p_RELATED_LIST_LINE_ID IN NUMBER_TYPE, /* bug 3020816 */
p_PRICING_STATUS_TEXT IN VARCHAR_TYPE) --added for Java Engine
IS
i NUMBER;
INSERT_RLTD_LINES2(
p_LINE_INDEX => l_line_index,
p_LINE_DETAIL_INDEX => l_ldet_index,
p_RELATIONSHIP_TYPE_CODE => p_RELATIONSHIP_TYPE_CODE,
p_RELATED_LINE_INDEX => l_rltd_line_index,
p_RELATED_LINE_DETAIL_INDEX => l_rltd_ldet_index,
x_status_code => x_status_code,
x_status_text => x_status_text,
p_LIST_LINE_ID => p_LIST_LINE_ID,
p_RELATED_LIST_LINE_ID => p_RELATED_LIST_LINE_ID,
p_PRICING_STATUS_TEXT => p_PRICING_STATUS_TEXT
);
END INSERT_RLTD_LINES2; -- overloaded version
SELECT LINE_INDEX,
LINE_QUANTITY,
PRICED_QUANTITY,
UNIT_PRICE,
LINE_TYPE_CODE,
LINE_UOM_CODE,
PRICED_UOM_CODE,
PRICE_FLAG
FROM qp_npreq_lines_tmp;
SELECT /*+ dynamic_sampling(1) */ to_number(VALUE_FROM)
FROM qp_npreq_line_attrs_tmp
WHERE CONTEXT = G_PRIC_ITEM_CONTEXT
AND ATTRIBUTE = G_PRIC_ATTRIBUTE1
AND ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND LINE_INDEX = p_line_index
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED;
select nvl(sum(nvl(line_unit_price * line_quantity, UNIT_PRICE * PRICED_QUANTITY)),0) /* 3143535 */
FROM qp_npreq_lines_tmp
WHERE charge_periodicity_code is NULL; -- added for recurring charges Bug # 4465168
l_co_line_index_tbl.delete;
l_ia_value_from_tbl.delete;
l_ia_line_index_tbl.delete;
l_ia_attribute_tbl.delete;
UPDATE qp_npreq_line_attrs_tmp
SET VALUE_FROM = qp_number.number_to_canonical(nvl(I.LINE_QUANTITY,0))
WHERE LINE_INDEX = I.LINE_INDEX
AND CONTEXT = G_PRIC_VOLUME_CONTEXT
AND ATTRIBUTE = G_QUANTITY_ATTRIBUTE
AND ATTRIBUTE_TYPE = G_PRICING_TYPE
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED;
engine_debug('No volume context in temp table, inserting one');
INSERT_LINE_ATTRS
(p_LINE_INDEX =>I.LINE_INDEX,
p_ATTRIBUTE_LEVEL =>G_LINE_LEVEL,
p_ATTRIBUTE_TYPE =>G_PRICING_TYPE,
p_CONTEXT =>G_PRIC_VOLUME_CONTEXT,
p_ATTRIBUTE =>G_QUANTITY_ATTRIBUTE,
p_VALUE_FROM =>qp_number.number_to_canonical(NVL(I.LINE_QUANTITY,0)),
p_VALIDATED_FLAG =>G_NO,
p_APPLIED_FLAG =>G_LIST_NOT_APPLIED,
p_PRICING_STATUS_CODE =>G_STATUS_UNCHANGED,
P_PRICING_ATTR_FLAG =>G_PRICING_YES,
x_status_code =>l_status_code,
x_status_text =>l_status_text);
UPDATE qp_npreq_lines_tmp
SET UNIT_PRICE = NULL
WHERE LINE_INDEX = I.LINE_INDEX;
engine_debug('Trying to update cross order volume period qty in temp table');
engine_debug ('Trying to update line quantity and line amount in temp table');
engine_debug('No volume context in temp table, inserting one');
INSERT_LINE_ATTRS
(p_LINE_INDEX =>I.LINE_INDEX,
p_ATTRIBUTE_LEVEL =>G_LINE_LEVEL,
p_ATTRIBUTE_TYPE =>G_PRICING_TYPE,
p_CONTEXT =>G_PRIC_VOLUME_CONTEXT,
p_ATTRIBUTE =>G_QUANTITY_ATTRIBUTE,
p_VALUE_FROM =>qp_number.number_to_canonical(nvl(NVL(I.PRICED_QUANTITY,I.LINE_QUANTITY),0)),
p_VALIDATED_FLAG =>G_NO,
p_APPLIED_FLAG =>G_LIST_NOT_APPLIED,
p_PRICING_STATUS_CODE =>G_STATUS_UNCHANGED,
P_PRICING_ATTR_FLAG =>G_PRICING_YES,
x_status_code =>l_status_code,
x_status_text =>l_status_text);
engine_debug('No volume context and line amt in temp table, inserting one');
INSERT_LINE_ATTRS
(p_LINE_INDEX =>I.LINE_INDEX,
p_ATTRIBUTE_LEVEL =>G_LINE_LEVEL,
p_ATTRIBUTE_TYPE =>G_PRICING_TYPE,
p_CONTEXT =>G_PRIC_VOLUME_CONTEXT,
p_ATTRIBUTE =>G_LINE_AMT_ATTRIBUTE,
p_VALUE_FROM =>qp_number.number_to_canonical(nvl(nvl(I.PRICED_QUANTITY,I.LINE_QUANTITY) * I.UNIT_PRICE ,0)),
p_VALIDATED_FLAG =>G_NO,
p_APPLIED_FLAG =>G_LIST_NOT_APPLIED,
p_PRICING_STATUS_CODE =>G_STATUS_UNCHANGED,
P_PRICING_ATTR_FLAG =>G_PRICING_YES,
x_status_code =>l_status_code,
x_status_text =>l_status_text);
/*UPDATE qp_npreq_lines_tmp
SET LINE_AMOUNT = nvl(nvl(I.PRICED_QUANTITY,I.LINE_QUANTITY) * I.UNIT_PRICE,0)
WHERE LINE_INDEX = I.LINE_INDEX; */
UPDATE /*+ index(qp_npreq_line_attrs_tmp qp_preq_line_attrs_tmp_n2) */ qp_npreq_line_attrs_tmp --upd4
SET VALUE_FROM = qp_number.number_to_canonical(round(qp_number.canonical_to_number(nvl(VALUE_FROM,0)) * v_uom_rate, G_INV_DECIMAL_PRECISION))
WHERE LINE_INDEX = l_co_line_index_tbl(I)
AND CONTEXT = G_PRIC_VOLUME_CONTEXT
AND ATTRIBUTE IN ('PRICING_ATTRIBUTE3','PRICING_ATTRIBUTE1','PRICING_ATTRIBUTE11')
AND ATTRIBUTE_TYPE = G_PRICING_TYPE
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED;
UPDATE /*+ index(qp_npreq_line_attrs_tmp qp_preq_line_attrs_tmp_n2) */ qp_npreq_line_attrs_tmp --upd3, upd5
SET VALUE_FROM = l_ia_value_from_tbl(I)
WHERE LINE_INDEX = l_ia_line_index_tbl(I)
AND CONTEXT = G_PRIC_VOLUME_CONTEXT
AND ATTRIBUTE = l_ia_attribute_tbl(I)
AND ATTRIBUTE_TYPE = G_PRICING_TYPE
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED;
engine_debug ('Trying to update order amount in temp table');
UPDATE qp_npreq_line_attrs_tmp --upd6
--SET VALUE_FROM = qp_number.number_to_canonical(v_order_amt)
SET VALUE_FROM = qp_number.number_to_canonical(qp_number.canonical_to_number(value_from)
- G_BEFORE_PRICING_ORD_AMT
+ v_order_amt)
WHERE
CONTEXT = G_PRIC_VOLUME_CONTEXT
AND ATTRIBUTE = G_ORDER_AMOUNT_ATTRIBUTE
AND ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED;
engine_debug('No volume context and order amt in temp table, inserting one');
INSERT INTO qp_npreq_line_attrs_tmp
(LINE_INDEX,ATTRIBUTE_LEVEL,ATTRIBUTE_TYPE,CONTEXT,ATTRIBUTE,VALUE_FROM,
VALIDATED_FLAG,APPLIED_FLAG,PRICING_STATUS_CODE,PRICING_ATTR_FLAG)
SELECT
LINE_INDEX,
LINE_TYPE_CODE,
G_QUALIFIER_TYPE,
G_PRIC_VOLUME_CONTEXT,
G_ORDER_AMOUNT_ATTRIBUTE,
qp_number.number_to_canonical(v_order_amt),
G_NO,
G_NO,
G_STATUS_UNCHANGED,
G_NO
FROM qp_npreq_lines_tmp;
select value_from
into l_value_from
from qp_npreq_line_attrs_tmp
where CONTEXT = G_PRIC_VOLUME_CONTEXT
AND ATTRIBUTE = G_ORDER_AMOUNT_ATTRIBUTE
AND ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED
and rownum = 1;
PROCEDURE Update_Distinct_Qualifier_Flag( x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2) AS
l_routine VARCHAR2(40) := 'Update_Distinct_Qualifier_Flag';
INDX,QP_PREQ_GRP.update_distinct_qualifier_flag.sel1,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.update_distinct_qualifier_flag.sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.update_distinct_qualifier_flag.sel1,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.update_distinct_qualifier_flag.sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.update_distinct_qualifier_flag.sel1,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.update_distinct_qualifier_flag.sel1,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6
*/
UPDATE /*+ dynamic_sampling(1) */ qp_npreq_line_attrs_tmp a
SET distinct_qualifier_flag = 'Y'
WHERE pricing_status_code = G_STATUS_UNCHANGED
AND attribute_type = G_QUALIFIER_TYPE
AND rowid = (SELECT /*+ dynamic_sampling(1) */ min(rowid)
FROM qp_npreq_line_attrs_tmp b
WHERE a.context = b.context
AND a.attribute = b.attribute
AND a.value_from = b.value_from
AND b.attribute_type = G_QUALIFIER_TYPE
AND b.pricing_status_code = G_STATUS_UNCHANGED);
/* UPDATE qp_npreq_line_attrs_tmp a
SET distinct_qualifier_flag = 'Y'
WHERE pricing_status_code = G_STATUS_UNCHANGED
AND attribute_type = G_QUALIFIER_TYPE
AND rowid = (SELECT min(rowid)
FROM qp_npreq_line_attrs_tmp b
WHERE b.attribute_type = G_QUALIFIER_TYPE
AND b.pricing_status_code = G_STATUS_UNCHANGED
GROUP BY b.context , b.attribute , b.value_from); */
END Update_Distinct_Qualifier_Flag;
|PROCEDURE Delete_Duplicate_List_Lines
+------------------------------------------------------------------------
*/
-- shu fix bug 1915355
PROCEDURE Delete_Duplicate_List_Lines(p_pricing_phase_id NUMBER,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2) AS
l_routine VARCHAR2(40) := 'Delete_Duplicate_List_Lines';
SELECT count(*)
FROM qp_npreq_ldets_tmp
WHERE pricing_status_code = G_STATUS_NEW
AND pricing_phase_id = p_pricing_phase_id
GROUP BY line_index,created_from_list_line_id
HAVING count(*) > 1;
engine_debug('In Delete Duplicate List Lines procedure');
UPDATE qp_npreq_ldets_tmp a
SET pricing_status_code = 'DUPLICATE_LIST_LINE'
WHERE pricing_status_code = G_STATUS_NEW
AND pricing_phase_id = p_pricing_phase_id
AND rowid not in (SELECT min(rowid)
FROM qp_npreq_ldets_tmp
WHERE pricing_status_code = G_STATUS_NEW
AND pricing_phase_id = p_pricing_phase_id
GROUP BY line_index,created_from_list_line_id);
END Delete_Duplicate_List_Lines;
|PROCEDURE Delete_Hdrs_With_No_ProdAttr
+------------------------------------------------------------------------
*/
--Added index hints for bug#7480862
PROCEDURE Delete_Hdrs_With_No_ProdAttr(p_pricing_phase_id NUMBER,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2) AS
l_routine VARCHAR2(40) := 'Delete_Hdrs_With_No_ProdAttr';
UPDATE /*+ index(a qpprod QP_PREQ_QUAL_TMP_N1) dynamic_sampling(1) */ qp_preq_qual_tmp a --5658579
--UPDATE qp_preq_qual_tmp a
SET pricing_status_code = G_STATUS_DELETED
WHERE pricing_status_code = G_STATUS_UNCHANGED
AND pricing_phase_id = p_pricing_phase_id
AND list_line_id = -1
AND NOT EXISTS (select /*+ NO_UNNEST
leading (c)
use_nl (c qpprod)
index (qpprod, QP_PREQ_LINE_ATTRS_TMP_N6)
index(c qp_pricing_attributes_n13) */
'x'
FROM qp_npreq_line_attrs_tmp qpprod, qp_pricing_attributes c
WHERE c.list_header_id = a.list_header_id -- delete header for which product does
AND c.pricing_phase_id = p_pricing_phase_id -- not match
AND qpprod.context = c.product_attribute_context
AND qpprod.attribute = c.product_attribute
AND qpprod.value_from = c.product_attr_value
AND qpprod.pricing_status_code = G_STATUS_UNCHANGED
AND c.qualification_ind in (G_YES_PROD_HDR_LINE_QUAL_IND, G_YES_PROD_HDR_QUAL_IND,
G_YES_PROD_PRIC_HDR_QUAL_IND, G_YES_PRIC_HDR_LINE_QUAL_IND)
AND qpprod.attribute_type = G_PRODUCT_TYPE
AND c.excluder_flag = G_NO
AND rownum = 1
--UNION
--SELECT /*+ ORDERED USE_NL(d qppric) index(d qp_pricing_attributes_n5) */ 'x'
/*FROM qp_npreq_line_attrs_tmp qpprod,
qp_pricing_attributes d,
qp_preq_line_attrs_tmp qppric
WHERE d.list_header_id = a.list_header_id -- delete header for which product and
AND d.pricing_phase_id = p_pricing_phase_id -- pricing attrbutes do not match
AND d.QUALIFICATION_IND in (G_YES_PROD_PRIC_HDR_QUAL_IND, G_YES_PRIC_HDR_LINE_QUAL_IND)
AND d.product_attribute_context = qpprod.context
AND d.product_attribute = qpprod.attribute
AND d.product_attr_value = qpprod.value_from
AND d.excluder_flag = G_NO
AND d.pricing_attribute_context = qppric.context
AND d.pricing_attribute = qppric.attribute
AND (d.pricing_attr_value_from = qppric.value_from
or d.comparison_operator_code IN ('NOT =',G_OPERATOR_BETWEEN))
AND qpprod.attribute_type='PRODUCT'
AND qpprod.pricing_status_code=G_STATUS_UNCHANGED
AND qppric.attribute_type = 'PRICING'
AND qppric.pricing_status_code = G_STATUS_UNCHANGED
AND qpprod.line_index = qppric.line_index
AND rownum = 1*/
)
AND NOT EXISTS (SELECT 'x' --do not delete header for which product is not defined
FROM qp_list_lines d
WHERE d.list_header_id = a.list_header_id
AND d.qualification_ind in (G_YES_HDR_LINE_QUAL_IND,G_YES_HDR_QUAL_IND)
AND d.pricing_phase_id = p_pricing_phase_id
AND rownum=1);
engine_debug('No of headers deleted from qual tmp due to non-matching of product : ' || l_routine || ' ' || SQL%ROWCOUNT);
END Delete_Hdrs_With_No_ProdAttr;
PROCEDURE Delete_Un_Asked_For_Promotions (p_line_index IN NUMBER,
p_pricing_phase_id IN NUMBER,
p_incompat_resolve_code IN VARCHAR2,
x_return_status OUT NOCOPY
VARCHAR2,
x_return_status_txt OUT NOCOPY
VARCHAR2) AS
l_debug varchar2(3);
UPDATE qp_npreq_ldets_tmp a --upd1
SET PRICING_STATUS_CODE = l_pricing_status_code
WHERE a.ASK_FOR_FLAG = QP_PREQ_GRP.G_YES
AND a.PRICING_PHASE_ID = p_pricing_phase_id
AND a.LINE_INDEX = p_line_index
AND NOT EXISTS (
SELECT /*+ index(b QP_PREQ_LINE_ATTRS_TMP_N2) */ 'X' -- This can use N2 instead of N7
FROM qp_npreq_line_attrs_tmp b
WHERE b.LINE_INDEX = p_line_index
AND b.PRICING_STATUS_CODE = QP_PREQ_GRP.G_STATUS_UNCHANGED
AND b.ATTRIBUTE_TYPE = QP_PREQ_GRP.G_QUALIFIER_TYPE
AND b.CONTEXT = QP_PREQ_GRP.G_LIST_HEADER_CONTEXT
AND b.ATTRIBUTE IN (QP_PREQ_GRP.G_QUAL_ATTRIBUTE1,
QP_PREQ_GRP.G_QUAL_ATTRIBUTE2,
QP_PREQ_GRP.G_QUAL_ATTRIBUTE6)
AND b.VALUE_FROM = decode(b.ATTRIBUTE,
QP_PREQ_GRP.G_QUAL_ATTRIBUTE1,to_char(a.CREATED_FROM_LIST_HEADER_ID),
QP_PREQ_GRP.G_QUAL_ATTRIBUTE2,to_char(a.CREATED_FROM_LIST_LINE_ID),
QP_PREQ_GRP.G_QUAL_ATTRIBUTE6,to_char(a.CREATED_FROM_LIST_HEADER_ID)));
QP_PREQ_GRP.engine_debug ('Deleted Un Asked for promotions:'||l_pricing_status_code);
x_return_status_txt := 'Unexpected error in QP_PREQ_GRP.Delete_Un_Asked_For_Promotions: ' || SQLERRM;
END Delete_Un_Asked_For_Promotions;
l_not_insert_order_line_flag BOOLEAN := FALSE;
SELECT COUNT(*)
FROM qp_npreq_line_attrs_tmp
WHERE PRICING_STATUS_CODE = 'X';
SELECT COUNT(*)
FROM qp_int_line_attrs
WHERE PRICING_STATUS_CODE = 'X';
SELECT a.ask_for_flag
FROM qp_list_headers_b a
WHERE a.list_header_id = l_list_header_id;
SELECT
qp_lhdr_b.list_header_id
FROM
qp_list_headers_b qp_lhdr_b
WHERE
qp_lhdr_b.parent_list_header_id = l_list_header_id AND qp_lhdr_b.ask_for_flag = G_YES;
l_not_insert_order_line_flag := TRUE;
l_not_insert_order_line_flag := FALSE;
IF (p_line_tbl(I).LINE_TYPE_CODE = G_ORDER_LEVEL AND l_not_insert_order_line_flag = TRUE) THEN
l_price_flag := 'N'; -- for summary line
G_UPD_ADJUSTED_UNIT_PRICE_TBL(K):= p_line_tbl(I).UPDATED_ADJUSTED_UNIT_PRICE;
G_PRICING_STATUS_CODE_tbl(K) := G_STATUS_UNCHANGED; -- always when inserted
SELECT qp_limit_price_request_code_s.nextval
INTO l_order_line_id
FROM dual;
engine_debug ('Bulk Inserting the actual lines : ' || G_PRICE_LIST_ID_TBL(1));
INSERT_LINES2
(p_LINE_INDEX => G_LINE_INDEX_TBL,
p_LINE_TYPE_CODE => G_LINE_TYPE_CODE_TBL,
p_PRICING_EFFECTIVE_DATE =>G_PRICING_EFFECTIVE_DATE_TBL,
p_ACTIVE_DATE_FIRST =>G_ACTIVE_DATE_FIRST_TBL,
p_ACTIVE_DATE_FIRST_TYPE =>G_ACTIVE_DATE_FIRST_TYPE_TBL,
p_ACTIVE_DATE_SECOND =>G_ACTIVE_DATE_SECOND_TBL,
p_ACTIVE_DATE_SECOND_TYPE =>G_ACTIVE_DATE_SECOND_TYPE_TBL,
p_LINE_QUANTITY => G_LINE_QUANTITY_TBL,
p_LINE_UOM_CODE => G_LINE_UOM_CODE_TBL,
p_REQUEST_TYPE_CODE => G_REQUEST_TYPE_CODE_TBL,
p_PRICED_QUANTITY => G_PRICED_QUANTITY_TBL,
p_PRICED_UOM_CODE => G_PRICED_UOM_CODE_TBL,
p_CURRENCY_CODE => G_CURRENCY_CODE_TBL,
p_UNIT_PRICE => G_UNIT_PRICE_TBL,
p_PERCENT_PRICE => G_PERCENT_PRICE_TBL,
p_UOM_QUANTITY => G_UOM_QUANTITY_TBL,
p_ADJUSTED_UNIT_PRICE =>G_ADJUSTED_UNIT_PRICE_TBL,
p_UPD_ADJUSTED_UNIT_PRICE =>G_UPD_ADJUSTED_UNIT_PRICE_TBL,
p_PROCESSED_FLAG =>G_PROCESSED_FLAG_TBL,
p_PRICE_FLAG =>G_PRICE_FLAG_TBL,
p_LINE_ID =>G_LINE_ID_TBL,
p_PROCESSING_ORDER =>G_PROCESSING_ORDER_TBL,
p_PRICING_STATUS_CODE =>G_PRICING_STATUS_CODE_tbl,
p_PRICING_STATUS_TEXT =>G_PRICING_STATUS_TEXT_tbl,
p_ROUNDING_FLAG =>G_ROUNDING_FLAG_TBL,
p_ROUNDING_FACTOR =>G_ROUNDING_FACTOR_TBL,
p_QUALIFIERS_EXIST_FLAG => G_QUALIFIERS_EXIST_FLAG_TBL,
p_PRICING_ATTRS_EXIST_FLAG =>G_PRICING_ATTRS_EXIST_FLAG_TBL,
p_PRICE_LIST_ID => G_PRICE_LIST_ID_TBL,
p_VALIDATED_FLAG => G_PL_VALIDATED_FLAG_TBL,
p_PRICE_REQUEST_CODE => G_PRICE_REQUEST_CODE_TBL,
p_USAGE_PRICING_TYPE =>G_USAGE_PRICING_TYPE_tbl,
p_LINE_CATEGORY =>G_LINE_CATEGORY_TBL,
p_CONTRACT_START_DATE =>G_CONTRACT_START_DATE_TBL, /* shulin */
p_CONTRACT_END_DATE =>G_CONTRACT_END_DATE_TBL, /* shulin */
p_LINE_UNIT_PRICE =>G_LINE_UNIT_PRICE_TBL, /* shu_latest */
p_LIST_PRICE_OVERRIDE_FLAG => G_LIST_PRICE_OVERRIDE_FLAG_TBL, -- po integration
p_CHARGE_PERIODICITY_CODE => G_CHARGE_PERIODICITY_CODE_TBL,
x_status_code =>l_status_code,
x_status_text =>l_status_text);
(l_not_insert_order_line_flag = TRUE
and p_qual_tbl(I).LINE_INDEX <> l_summary_line_index or
l_not_insert_order_line_flag = FALSE)) LOOP
G_LINE_INDEX_tbl(K) := p_qual_tbl(I).LINE_INDEX;
SELECT list_header_id
INTO G_LIST_HEADER_ID_TBL(K)
FROM qp_list_lines
WHERE list_line_id = to_number(p_qual_tbl(I).QUALIFIER_ATTR_VALUE_FROM);
INSERT_LINE_ATTRS2
( G_LINE_INDEX_tbl,
G_LINE_DETAIL_INDEX_tbl ,
G_ATTRIBUTE_LEVEL_tbl ,
G_ATTRIBUTE_TYPE_tbl ,
G_LIST_HEADER_ID_tbl ,
G_LIST_LINE_ID_tbl ,
G_CONTEXT_tbl ,
G_ATTRIBUTE_tbl ,
G_VALUE_FROM_tbl ,
G_SETUP_VALUE_FROM_tbl ,
G_VALUE_TO_tbl ,
G_SETUP_VALUE_TO_tbl ,
G_GROUPING_NUMBER_tbl ,
G_NO_QUALIFIERS_IN_GRP_tbl ,
G_COMPARISON_OPERATOR_TYPE_tbl ,
G_VALIDATED_FLAG_tbl ,
G_APPLIED_FLAG_tbl ,
G_PRICING_STATUS_CODE_tbl ,
G_PRICING_STATUS_TEXT_tbl ,
G_QUALIFIER_PRECEDENCE_tbl ,
G_DATATYPE_tbl ,
G_PRICING_ATTR_FLAG_tbl ,
G_QUALIFIER_TYPE_tbl ,
G_PRODUCT_UOM_CODE_TBL ,
G_EXCLUDER_FLAG_TBL ,
G_PRICING_PHASE_ID_TBL_A ,
G_INCOMP_GRP_CODE_TBL_A ,
G_LINE_DETAIL_TYPE_CODE_TBL_A ,
G_MODIFIER_LEVEL_CODE_TBL_A ,
G_PRIMARY_UOM_FLAG_TBL_A ,
l_status_code ,
l_status_text );
/* begin bulk insert ldets -- 3215497 */
-- first reset global tables
Reset_All_Tbls(l_status_code, l_status_text);
v_pricing_status_code := G_STATUS_UNCHANGED; -- insert passed adjustments with X
(l_not_insert_order_line_flag = TRUE and
p_line_detail_tbl(I).LINE_INDEX <> l_summary_line_index or
l_not_insert_order_line_flag = FALSE)
)
LOOP
-- populate relevant tables
G_LINE_DETAIL_INDEX_tbl(K) := p_LINE_DETAIL_tbl(I).LINE_DETAIL_INDEX;
G_UPDATED_FLAG_TBL(K) := p_LINE_DETAIL_tbl(I).UPDATED_FLAG;
G_SELECTED_VOLUME_ATTR_TBL(K) := null;
INSERT_LDETS2(
p_LINE_DETAIL_index => G_LINE_DETAIL_INDEX_tbl,
p_LINE_DETAIL_TYPE_CODE => G_LINE_DETAIL_TYPE_CODE_TBL,
p_PRICE_BREAK_TYPE_CODE => G_PRICE_BREAK_TYPE_CODE_TBL,
p_LIST_PRICE => G_LIST_PRICE_TBL,
p_LINE_INDEX => G_LINE_INDEX_tbl,
p_CREATED_FROM_LIST_HEADER_ID => G_LIST_HEADER_ID_tbl,
p_CREATED_FROM_LIST_LINE_ID => G_LIST_LINE_ID_tbl,
p_CREATED_FROM_LIST_LINE_TYPE => G_LIST_LINE_TYPE_TBL,
p_CREATED_FROM_LIST_TYPE_CODE => G_LIST_TYPE_CODE_TBL,
p_CREATED_FROM_SQL => G_CREATED_FROM_SQL_TBL,
p_PRICING_GROUP_SEQUENCE => G_PRICING_GROUP_SEQUENCE_TBL,
p_PRICING_PHASE_ID => G_PRICING_PHASE_ID_TBL,
p_OPERAND_CALCULATION_CODE => G_OPERAND_CALCULATION_CODE_TBL,
p_OPERAND_VALUE => G_OPERAND_VALUE_TBL,
p_SUBSTITUTION_TYPE_CODE => G_SUBSTITUTION_TYPE_CODE_TBL,
p_SUBSTITUTION_VALUE_FROM => G_SUBSTITUTION_VALUE_FROM_TBL,
p_SUBSTITUTION_VALUE_TO => G_SUBSTITUTION_VALUE_TO_TBL,
p_ASK_FOR_FLAG => G_ASK_FOR_FLAG_TBL,
p_PRICE_FORMULA_ID => G_PRICE_FORMULA_ID_TBL,
p_PRICING_STATUS_CODE => G_PRICING_STATUS_CODE_tbl,
p_PRICING_STATUS_TEXT => G_PRICING_STATUS_TEXT_tbl,
p_PRODUCT_PRECEDENCE => G_PRODUCT_PRECEDENCE_TBL,
p_INCOMPATABLILITY_GRP_CODE => G_INCOMP_GRP_CODE_TBL,
p_PROCESSED_FLAG => G_PROCESSED_FLAG_TBL,
p_APPLIED_FLAG => G_APPLIED_FLAG_tbl,
p_AUTOMATIC_FLAG => G_AUTOMATIC_FLAG_TBL,
p_OVERRIDE_FLAG => G_OVERRIDE_FLAG_TBL,
p_PRIMARY_UOM_FLAG => G_PRIMARY_UOM_FLAG_TBL,
p_PRINT_ON_INVOICE_FLAG => G_PRINT_ON_INVOICE_FLAG_TBL,
p_MODIFIER_LEVEL_CODE => G_MODIFIER_LEVEL_CODE_TBL,
p_BENEFIT_QTY => G_BENEFIT_QTY_TBL,
p_BENEFIT_UOM_CODE => G_BENEFIT_UOM_CODE_TBL,
p_LIST_LINE_NO => G_LIST_LINE_NO_TBL,
p_ACCRUAL_FLAG => G_ACCRUAL_FLAG_TBL,
p_ACCRUAL_CONVERSION_RATE => G_ACCRUAL_CONVERSION_RATE_TBL,
p_ESTIM_ACCRUAL_RATE => G_ESTIM_ACCRUAL_RATE_TBL,
p_RECURRING_FLAG => G_RECURRING_FLAG_TBL,
p_SELECTED_VOLUME_ATTR => G_SELECTED_VOLUME_ATTR_TBL,
p_ROUNDING_FACTOR => G_ROUNDING_FACTOR_TBL,
p_HEADER_LIMIT_EXISTS => G_HEADER_LIMIT_EXISTS_TBL,
p_LINE_LIMIT_EXISTS => G_LINE_LIMIT_EXISTS_TBL,
p_CHARGE_TYPE_CODE => G_CHARGE_TYPE_CODE_TBL,
p_CHARGE_SUBTYPE_CODE => G_CHARGE_SUBTYPE_CODE_TBL,
p_LINE_QUANTITY => G_LINE_QUANTITY_TBL,
p_UPDATED_FLAG => G_UPDATED_FLAG_TBL,
p_CALCULATION_CODE => G_CALCULATION_CODE_TBL,
p_CHANGE_REASON_CODE =>G_CHANGE_REASON_CODE_TBL,
p_CHANGE_REASON_TEXT => G_CHANGE_REASON_TEXT_TBL,
p_PROCESS_CODE => G_PROCESS_CODE_TBL,
x_status_code => l_status_code,
x_status_text => l_status_text
);
/* end bulk insert ldets */
/* begin bulk insert ldet qualifiers -- 3215497 */
-- first reset global tables
Reset_All_Tbls(l_status_code, l_status_text);
/* end bulk insert ldet qualifiers */
/* begin bulk insert ldet line attributes -- 3215497 */
-- continue using global tables where last left off
I := p_LINE_DETAIL_attr_tbl.FIRST;
INSERT_LINE_ATTRS2(
p_LINE_INDEX_tbl => G_LINE_INDEX_tbl,
p_LINE_DETAIL_INDEX_tbl => G_LINE_DETAIL_INDEX_tbl,
p_ATTRIBUTE_LEVEL_tbl => G_ATTRIBUTE_LEVEL_tbl,
p_ATTRIBUTE_TYPE_tbl => G_ATTRIBUTE_TYPE_tbl,
p_LIST_HEADER_ID_tbl => G_LIST_HEADER_ID_tbl,
p_LIST_LINE_ID_tbl => G_LIST_LINE_ID_tbl,
p_CONTEXT_tbl => G_CONTEXT_tbl,
p_ATTRIBUTE_tbl => G_ATTRIBUTE_tbl,
p_VALUE_FROM_tbl => G_VALUE_FROM_tbl,
p_SETUP_VALUE_FROM_tbl => G_SETUP_VALUE_FROM_tbl,
p_VALUE_TO_tbl => G_VALUE_TO_tbl,
p_SETUP_VALUE_TO_tbl => G_SETUP_VALUE_TO_tbl,
p_GROUPING_NUMBER_tbl => G_GROUPING_NUMBER_tbl,
p_NO_QUALIFIERS_IN_GRP_tbl => G_NO_QUALIFIERS_IN_GRP_tbl,
p_COMPARISON_OPERATOR_TYPE_tbl => G_COMPARISON_OPERATOR_TYPE_tbl,
p_VALIDATED_FLAG_tbl => G_VALIDATED_FLAG_tbl,
p_APPLIED_FLAG_tbl => G_APPLIED_FLAG_tbl,
p_PRICING_STATUS_CODE_tbl => G_PRICING_STATUS_CODE_tbl,
p_PRICING_STATUS_TEXT_tbl => G_PRICING_STATUS_TEXT_tbl,
p_QUALIFIER_PRECEDENCE_tbl => G_QUALIFIER_PRECEDENCE_tbl,
p_DATATYPE_tbl => G_DATATYPE_tbl,
p_PRICING_ATTR_FLAG_tbl => G_PRICING_ATTR_FLAG_tbl,
p_QUALIFIER_TYPE_tbl => G_QUALIFIER_TYPE_tbl,
p_PRODUCT_UOM_CODE_TBL => G_PRODUCT_UOM_CODE_tbl,
p_EXCLUDER_FLAG_TBL => G_EXCLUDER_FLAG_tbl,
p_PRICING_PHASE_ID_TBL => G_PRICING_PHASE_ID_tbl,
p_INCOMPATABILITY_GRP_CODE_TBL => G_INCOMP_GRP_CODE_tbl,
p_LINE_DETAIL_TYPE_CODE_TBL => G_LINE_DETAIL_TYPE_CODE_tbl,
p_MODIFIER_LEVEL_CODE_TBL => G_MODIFIER_LEVEL_CODE_tbl,
p_PRIMARY_UOM_FLAG_TBL => G_PRIMARY_UOM_FLAG_tbl,
x_status_code => l_status_code,
x_status_text => l_status_text
);
/* end bulk insert ldet line attributes */
/* begin bulk insert rltd lines -- 3215497 */
-- first reset global tables
Reset_All_Tbls(l_status_code, l_status_text);
INSERT_RLTD_LINES2(
p_LINE_INDEX => G_LINE_INDEX_tbl,
p_LINE_DETAIL_INDEX => G_LINE_DETAIL_INDEX_tbl,
p_RELATIONSHIP_TYPE_CODE => G_RELATIONSHIP_TYPE_TBL,
p_RELATED_LINE_INDEX => G_RLTD_LINE_INDEX_TBL,
p_RELATED_LINE_DETAIL_INDEX => G_RLTD_LINE_DETAIL_INDEX_TBL,
x_status_code => l_status_code,
x_status_text => l_status_text
);
engine_debug('after bulk insert rltd lines');
/* end bulk insert rltd lines */
IF G_DEBUG_ENGINE = FND_API.G_TRUE THEN
OPEN l_get_count_cur;
SELECT pricing_effective_date
FROM qp_npreq_lines_tmp
WHERE line_index = p_line_index;
SELECT pricing_effective_date
FROM qp_int_lines
WHERE line_index = p_line_index;
SELECT LINE_INDEX,
LINE_ID,
PRICE_LIST_HEADER_ID, -- shu, print out this
LINE_TYPE_CODE,
LINE_QUANTITY,
LINE_UOM_CODE,
LINE_UNIT_PRICE, -- shu
ROUNDING_FACTOR, -- shu
PRICED_QUANTITY,
UOM_QUANTITY,
PRICED_UOM_CODE,
CURRENCY_CODE,
UNIT_PRICE,
PERCENT_PRICE,
PARENT_PRICE,
PARENT_QUANTITY,
PARENT_UOM_CODE,
PRICE_FLAG,
ADJUSTED_UNIT_PRICE,
UPDATED_ADJUSTED_UNIT_PRICE,
PROCESSING_ORDER,
PROCESSED_CODE,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
HOLD_CODE,
HOLD_TEXT,
PRICE_REQUEST_CODE,
PRICING_EFFECTIVE_DATE,
EXTENDED_PRICE /* block pricing */
--EXTENDED_SELLING_PRICE_UR, --[prarasto:Post Round]New fields for unrounded values, [julin/postround] redesign
--ORDER_UOM_SELLING_PRICE_UR, --[prarasto:Post Round]
--ADJUSTED_UNIT_PRICE_UR --[prarasto:Post Round]
FROM qp_npreq_lines_tmp;
SELECT /*+ dynamic_sampling(1) */ QPLAT.LINE_INDEX,
QPLAT.LINE_DETAIL_INDEX,
QPLAT.CONTEXT,
QPLAT.ATTRIBUTE,
QPLAT.SETUP_VALUE_FROM,
QPLAT.SETUP_VALUE_TO,
QPLAT.COMPARISON_OPERATOR_TYPE_CODE,
QPLAT.VALIDATED_FLAG,
QPLAT.PRICING_STATUS_CODE,
QPLAT.PRICING_STATUS_TEXT
FROM qp_npreq_ldets_tmp QPLD ,
qp_npreq_line_attrs_tmp QPLAT
WHERE QPLD.LINE_DETAIL_INDEX = QPLAT.LINE_DETAIL_INDEX
AND QPLD.PRICING_STATUS_CODE = G_STATUS_NEW
AND QPLAT.ATTRIBUTE_TYPE = 'QUALIFIER';
SELECT /*+ dynamic_sampling(1) */ QPLAT_PRICING.CONTEXT PRICING_CONTEXT,
QPLAT_PRICING.ATTRIBUTE PRICING_ATTRIBUTE,
nvl(QPLAT_PRICING.SETUP_VALUE_FROM,QPLAT_PRICING.VALUE_FROM) PRICING_ATTR_VALUE_FROM,
QPLAT_PRICING.SETUP_VALUE_TO PRICING_ATTR_VALUE_TO,
QPLAT_PRICING.COMPARISON_OPERATOR_TYPE_CODE,
QPLAT_PRICING.LINE_DETAIL_INDEX,
QPLAT_PRICING.LINE_INDEX,
QPLAT_PRICING.VALIDATED_FLAG
FROM qp_npreq_ldets_tmp QPLD ,
qp_npreq_line_attrs_tmp QPLAT_PRICING
WHERE QPLD.LINE_DETAIL_INDEX = QPLAT_PRICING.LINE_DETAIL_INDEX
AND QPLD.PRICING_STATUS_CODE = G_STATUS_NEW
AND QPLAT_PRICING.ATTRIBUTE_TYPE IN ('PRICING','PRODUCT');
SELECT /*+ ORDERED USE_NL(A B C) l_ldets_cur */
a.LINE_DETAIL_INDEX,
a.LINE_DETAIL_TYPE_CODE,
a.LINE_INDEX,
a.CREATED_FROM_LIST_HEADER_ID LIST_HEADER_ID,
a.CREATED_FROM_LIST_LINE_ID LIST_LINE_ID,
a.CREATED_FROM_LIST_LINE_TYPE LIST_LINE_TYPE_CODE,
a.PRICE_BREAK_TYPE_CODE,
a.LINE_QUANTITY,
a.ADJUSTMENT_AMOUNT,
a.AUTOMATIC_FLAG,
a.PRICING_PHASE_ID,
a.OPERAND_CALCULATION_CODE,
a.OPERAND_VALUE,
a.PRICING_GROUP_SEQUENCE,
a.CREATED_FROM_LIST_TYPE_CODE,
a.APPLIED_FLAG,
a.PRICING_STATUS_CODE,
a.PRICING_STATUS_TEXT,
a.LIMIT_CODE,
a.LIMIT_TEXT,
a.LIST_LINE_NO,
a.GROUP_QUANTITY,
a.GROUP_AMOUNT, -- 2388011_new
a.UPDATED_FLAG,
a.PROCESS_CODE,
a.CALCULATION_CODE,
a.CHANGE_REASON_CODE,
a.CHANGE_REASON_TEXT,
b.SUBSTITUTION_VALUE SUBSTITUTION_VALUE_TO,
b.SUBSTITUTION_ATTRIBUTE,
b.ACCRUAL_FLAG,
b.modifier_level_code,
b.ESTIM_GL_VALUE,
b.ACCRUAL_CONVERSION_RATE,
--Pass throuh components
b.OVERRIDE_FLAG,
b.PRINT_ON_INVOICE_FLAG,
b.INVENTORY_ITEM_ID,
b.ORGANIZATION_ID,
b.RELATED_ITEM_ID,
b.RELATIONSHIP_TYPE_ID,
b.ESTIM_ACCRUAL_RATE,
b.EXPIRATION_DATE,
b.BENEFIT_PRICE_LIST_LINE_ID,
b.RECURRING_FLAG,
b.RECURRING_VALUE, --for block pricing bug 3657116
b.BENEFIT_LIMIT,
b.CHARGE_TYPE_CODE,
b.CHARGE_SUBTYPE_CODE,
b.BENEFIT_QTY,
b.BENEFIT_UOM_CODE,
b.PRORATION_TYPE_CODE,
b.INCLUDE_ON_RETURNS_FLAG,
b.REBATE_TRANSACTION_TYPE_CODE,
b.NUMBER_EXPIRATION_PERIODS,
b.EXPIRATION_PERIOD_UOM,
b.COMMENTS,
b.break_uom_code, /* proration */
b.break_uom_context, /* proration */
b.break_uom_attribute /* proration */
FROM qp_npreq_ldets_tmp a,
QP_LIST_LINES b
WHERE a.CREATED_FROM_LIST_LINE_ID = b.LIST_LINE_ID
AND a.PRICING_STATUS_CODE = G_STATUS_NEW;
SELECT LINE_INDEX,
LINE_DETAIL_INDEX,
RELATIONSHIP_TYPE_CODE,
RELATED_LINE_INDEX,
RELATED_LINE_DETAIL_INDEX,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT
FROM qp_npreq_rltd_lines_tmp
WHERE PRICING_STATUS_CODE = G_STATUS_NEW
ORDER BY SETUP_VALUE_FROM;
SELECT LINE_INDEX,
LINE_ID,
PRICE_LIST_HEADER_ID, -- shu, print out this
LINE_TYPE_CODE,
LINE_QUANTITY,
LINE_UOM_CODE,
LINE_UNIT_PRICE, -- shu
ROUNDING_FACTOR, -- shu
PRICED_QUANTITY,
UOM_QUANTITY,
PRICED_UOM_CODE,
CURRENCY_CODE,
UNIT_PRICE,
PERCENT_PRICE,
PARENT_PRICE,
PARENT_QUANTITY,
PARENT_UOM_CODE,
PRICE_FLAG,
ADJUSTED_UNIT_PRICE,
UPDATED_ADJUSTED_UNIT_PRICE,
PROCESSING_ORDER,
PROCESSED_CODE,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
HOLD_CODE,
HOLD_TEXT,
PRICE_REQUEST_CODE,
PRICING_EFFECTIVE_DATE,
EXTENDED_PRICE /* block pricing */
FROM qp_int_lines;
SELECT /*+ dynamic_sampling(1) */ QPLAT.LINE_INDEX,
QPLAT.LINE_DETAIL_INDEX,
QPLAT.CONTEXT,
QPLAT.ATTRIBUTE,
QPLAT.SETUP_VALUE_FROM,
QPLAT.SETUP_VALUE_TO,
QPLAT.COMPARISON_OPERATOR_TYPE_CODE,
QPLAT.VALIDATED_FLAG,
QPLAT.PRICING_STATUS_CODE,
QPLAT.PRICING_STATUS_TEXT
FROM qp_int_ldets QPLD ,
qp_int_line_attrs QPLAT
WHERE QPLD.LINE_DETAIL_INDEX = QPLAT.LINE_DETAIL_INDEX
AND QPLD.PRICING_STATUS_CODE = G_STATUS_NEW
AND QPLAT.ATTRIBUTE_TYPE = 'QUALIFIER';
SELECT QPLAT_PRICING.CONTEXT PRICING_CONTEXT,
QPLAT_PRICING.ATTRIBUTE PRICING_ATTRIBUTE,
nvl(QPLAT_PRICING.SETUP_VALUE_FROM,QPLAT_PRICING.VALUE_FROM) PRICING_ATTR_VALUE_FROM,
QPLAT_PRICING.SETUP_VALUE_TO PRICING_ATTR_VALUE_TO,
QPLAT_PRICING.COMPARISON_OPERATOR_TYPE_CODE,
QPLAT_PRICING.LINE_DETAIL_INDEX,
QPLAT_PRICING.LINE_INDEX,
QPLAT_PRICING.VALIDATED_FLAG
FROM qp_int_ldets QPLD ,
qp_int_line_attrs QPLAT_PRICING
WHERE QPLD.LINE_DETAIL_INDEX = QPLAT_PRICING.LINE_DETAIL_INDEX
AND QPLD.PRICING_STATUS_CODE = G_STATUS_NEW
AND QPLAT_PRICING.ATTRIBUTE_TYPE IN ('PRICING','PRODUCT');
SELECT /*+ ORDERED USE_NL(A B C) l_int_ldets_cur */
a.LINE_DETAIL_INDEX,
a.LINE_DETAIL_TYPE_CODE,
a.LINE_INDEX,
a.CREATED_FROM_LIST_HEADER_ID LIST_HEADER_ID,
a.CREATED_FROM_LIST_LINE_ID LIST_LINE_ID,
a.CREATED_FROM_LIST_LINE_TYPE LIST_LINE_TYPE_CODE,
a.PRICE_BREAK_TYPE_CODE,
a.LINE_QUANTITY,
a.ADJUSTMENT_AMOUNT,
a.AUTOMATIC_FLAG,
a.PRICING_PHASE_ID,
a.OPERAND_CALCULATION_CODE,
a.OPERAND_VALUE,
a.PRICING_GROUP_SEQUENCE,
a.CREATED_FROM_LIST_TYPE_CODE,
a.APPLIED_FLAG,
a.PRICING_STATUS_CODE,
a.PRICING_STATUS_TEXT,
a.LIMIT_CODE,
a.LIMIT_TEXT,
a.LIST_LINE_NO,
a.GROUP_QUANTITY,
a.GROUP_AMOUNT, -- 2388011_new
a.UPDATED_FLAG,
a.PROCESS_CODE,
a.CALCULATION_CODE,
a.CHANGE_REASON_CODE,
a.CHANGE_REASON_TEXT,
b.SUBSTITUTION_VALUE SUBSTITUTION_VALUE_TO,
b.SUBSTITUTION_ATTRIBUTE,
b.ACCRUAL_FLAG,
b.modifier_level_code,
b.ESTIM_GL_VALUE,
b.ACCRUAL_CONVERSION_RATE,
--Pass throuh components
b.OVERRIDE_FLAG,
b.PRINT_ON_INVOICE_FLAG,
b.INVENTORY_ITEM_ID,
b.ORGANIZATION_ID,
b.RELATED_ITEM_ID,
b.RELATIONSHIP_TYPE_ID,
b.ESTIM_ACCRUAL_RATE,
b.EXPIRATION_DATE,
b.BENEFIT_PRICE_LIST_LINE_ID,
b.RECURRING_FLAG,
b.BENEFIT_LIMIT,
b.CHARGE_TYPE_CODE,
b.CHARGE_SUBTYPE_CODE,
b.BENEFIT_QTY,
b.BENEFIT_UOM_CODE,
b.PRORATION_TYPE_CODE,
b.INCLUDE_ON_RETURNS_FLAG,
b.REBATE_TRANSACTION_TYPE_CODE,
b.NUMBER_EXPIRATION_PERIODS,
b.EXPIRATION_PERIOD_UOM,
b.COMMENTS,
b.break_uom_code, /* proration */
b.break_uom_context, /* proration */
b.break_uom_attribute /* proration */
FROM qp_int_ldets a,
QP_LIST_LINES b
WHERE a.CREATED_FROM_LIST_LINE_ID = b.LIST_LINE_ID
AND a.PRICING_STATUS_CODE = G_STATUS_NEW;
SELECT LINE_INDEX,
LINE_DETAIL_INDEX,
RELATIONSHIP_TYPE_CODE,
RELATED_LINE_INDEX,
RELATED_LINE_DETAIL_INDEX,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT
FROM qp_int_rltd_lines
WHERE PRICING_STATUS_CODE = G_STATUS_NEW
ORDER BY SETUP_VALUE_FROM;
x_line_tbl(I).UPDATED_ADJUSTED_UNIT_PRICE := l_line.UPDATED_ADJUSTED_UNIT_PRICE;
x_line_detail_tbl(I).UPDATED_FLAG := l_dets.UPDATED_FLAG;
x_line_tbl(I).UPDATED_ADJUSTED_UNIT_PRICE := l_line.UPDATED_ADJUSTED_UNIT_PRICE;
x_line_detail_tbl(I).UPDATED_FLAG := l_dets.UPDATED_FLAG;
SELECT /*+ ORDERED USE_NL(b) index(a qp_preq_line_attrs_tmp_N5) l_get_multiple_exclude_cur */
distinct a.line_index , a.list_header_id , a.list_line_id , a.grouping_number grouping_no,
a.context , a.attribute , a.setup_value_from
FROM qp_npreq_line_attrs_tmp a , qp_npreq_ldets_tmp b
WHERE
a.comparison_operator_type_code = 'NOT ='
AND a.attribute_type IN (G_PRICING_TYPE,G_QUALIFIER_TYPE)
AND a.pricing_status_code = G_STATUS_NEW
AND a.pricing_phase_id = p_pricing_phase_id
AND a.line_index > 0
AND a.line_detail_index = b.line_detail_index
AND b.pricing_status_code = G_STATUS_NEW
order by a.line_index,a.list_header_id,a.list_line_id, a.grouping_number;
SELECT value_from
FROM qp_npreq_line_attrs_tmp
WHERE context = p_context
AND attribute = p_attribute
AND value_from = p_value
AND line_index = p_line_index
AND attribute_type IN (G_PRICING_TYPE,G_QUALIFIER_TYPE )
AND pricing_status_code = G_STATUS_UNCHANGED;
l_deleted_flag BOOLEAN := FALSE;
l_deleted_flag = FALSE) THEN
l_passed_value_from := NULL; -- Init
l_deleted_flag := FALSE;
engine_debug('EMH Deleted Flag is True');
l_deleted_flag := TRUE;
UPDATE qp_npreq_line_attrs_tmp --upd1
SET pricing_status_code = G_DELETED_EXCLUDER
WHERE list_header_id = l_del_list_header_tbl(j)
AND list_line_id = l_del_list_line_tbl(j)
AND line_index = l_del_line_index_tbl(j)
AND comparison_operator_type_code = 'NOT ='
AND pricing_status_code = G_STATUS_NEW -- Expect an issue because of this join condition
AND attribute_type IN (G_PRICING_TYPE,G_QUALIFIER_TYPE);
UPDATE qp_npreq_ldets_tmp
SET pricing_status_code = G_DELETED_EXCLUDER
WHERE created_from_list_header_id = l_del_list_header_tbl(j)
AND created_from_list_line_id = l_del_list_line_tbl(j)
AND line_index = l_del_line_index_tbl(j)
AND pricing_phase_id = p_pricing_phase_id; */
Delete_Duplicate_List_Lines(p_pricing_phase_id,l_status_code,l_status_text);
select /*+ ORDERED USE_NL(c a ) index(a qp_pricing_attributes_n2) line_grp_cur */
b.created_from_list_line_id list_line_id , c.context , c.attribute ,
sum(qp_number.canonical_to_number(c.value_from)) group_value
from
qp_npreq_ldets_tmp b , qp_npreq_line_attrs_tmp c , qp_pricing_attributes a
where
b.modifier_level_code = G_LINE_GROUP
and b.pricing_phase_id = p_pricing_phase_id
and c.pricing_status_code = G_STATUS_UNCHANGED
and c.context = G_PRIC_VOLUME_CONTEXT
and c.attribute_type = G_PRICING_TYPE
and b.line_index = c.line_index
and b.pricing_status_code = G_STATUS_NEW
and a.list_line_id = b.created_from_list_line_id
and a.pricing_attribute_context = G_PRIC_VOLUME_CONTEXT
and a.pricing_attribute = c.attribute
group by b.created_from_list_line_id , c.context , c.attribute;
/*select c.list_line_id list_line_id , c.context , c.attribute ,
sum(qp_number.canonical_to_number(c.value_from)) group_value
from
qp_npreq_line_attrs_tmp c
where
c.modifier_level_code = G_LINE_GROUP
and c.pricing_phase_id = p_pricing_phase_id
and c.pricing_status_code = G_STATUS_NEW
and c.context = G_PRIC_VOLUME_CONTEXT
and c.attribute_type = G_PRICING_TYPE
and c.pricing_status_code = G_STATUS_NEW
group by c.list_line_id , c.context , c.attribute ; */
SELECT a.LINE_INDEX ,a.UNIT_PRICE
FROM qp_npreq_lines_tmp a,qp_npreq_ldets_tmp b
WHERE a.LINE_INDEX = b.LINE_INDEX
AND b.CREATED_FROM_LIST_LINE_ID = p_list_line_id;
/*UPDATE qp_npreq_line_attrs_tmp --upd1
SET GROUP_QUANTITY = l_group_quantity
WHERE LIST_LINE_ID = j.list_line_id;*/
UPDATE qp_npreq_ldets_tmp --upd2
SET LINE_QUANTITY = l_group_quantity, -- 2388011_latest, shu fix pbh_grp_amt
GROUP_QUANTITY = l_group_quantity, -- 2388011_latest, shu fix pbh_grp_amt
SELECTED_VOLUME_ATTR = G_QUANTITY -- 2388011_latest
WHERE CREATED_FROM_LIST_LINE_ID = j.list_line_id;
G_LINE_INDEX_TBL_G.delete;
G_UNIT_PRICE_TBL_G.delete;
UPDATE qp_npreq_ldets_tmp --upd4
SET GROUP_AMOUNT = G_GROUP_AMOUNT_PER_UNIT_TBL_G(I),
LINE_QUANTITY = l_group_amount, -- 2388011_latest
SELECTED_VOLUME_ATTR = G_AMOUNT -- 2388011_latest
WHERE CREATED_FROM_LIST_LINE_ID = j.list_line_id
AND LINE_INDEX = G_LINE_INDEX_TBL_G(I);
SELECT 'X'
INTO l_dummy
FROM qp_npreq_ldets_tmp
WHERE line_detail_index = p_line_detail_index
AND modifier_level_code = G_LINE_GROUP;
SELECT 'X'
INTO l_dummy
FROM qp_npreq_ldets_tmp
WHERE line_index = p_line_index
AND modifier_level_code = G_LINE_GROUP;
SELECT 'X'
INTO l_dummy
FROM qp_npreq_lines_tmp qplines
WHERE qplines.LINE_INDEX = p_line_index
AND nvl(qplines.PRICED_UOM_CODE,qplines.LINE_UOM_CODE) =
nvl(p_product_uom_code,nvl(qplines.PRICED_UOM_CODE,qplines.LINE_UOM_CODE));
|Update_Request_Line_Status(For request lines that have price list passed)
+----------------------------------------------------------
*/
PROCEDURE Update_Request_Line_Status(p_control_rec CONTROL_RECORD_TYPE,
p_status_code VARCHAR2,
p_freeze_override_flag IN VARCHAR2, --[julin/4708044]
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2) AS
l_routine VARCHAR2(240):='Routine:QP_PREQ_GRP.Update_Request_Line_Status';
engine_debug('In Update Request Line Status : ' || p_status_code);
UPDATE qp_npreq_lines_tmp a
SET pricing_status_code = G_STATUS_UPDATED
Where list_price_override_flag in ('Y', 'O') --po integration
AND line_type_code <> G_ORDER_LEVEL;
INDX,QP_PREQ_GRP.update_request_line_status.update_request_line_status_upd1,-No Index Used-,NA,NA
*/
/*
INDX,QP_PREQ_GRP.update_request_line_status.sel1,qp_npreq_ldets_tmp_N1,LINE_INDEX,1
INDX,QP_PREQ_GRP.update_request_line_status.sel1,qp_npreq_ldets_tmp_N1,PRICING_STATUS_CODE,2
INDX,QP_PREQ_GRP.update_request_line_status.sel1,qp_npreq_ldets_tmp_N1,PRICING_PHASE_ID,3
*/
UPDATE qp_npreq_lines_tmp a
SET pricing_status_code = G_STATUS_UPDATED
,processed_code = NULL -- bug 3501150
WHERE EXISTS (SELECT 'x'
from qp_npreq_ldets_tmp b
WHERE a.line_index = b.line_index
AND b.pricing_status_code = G_STATUS_NEW
AND b.pricing_phase_id = G_PRICE_LIST_PHASE_ID)
AND line_type_code <> G_ORDER_LEVEL;
UPDATE qp_npreq_lines_tmp a
SET processed_code = G_STS_LHS_NOT_FOUND
WHERE NOT EXISTS (SELECT 'x'
FROM qp_npreq_ldets_tmp b
WHERE a.line_index = b.line_index
AND b.pricing_status_code = G_STATUS_NEW
AND b.pricing_phase_id = G_PRICE_LIST_PHASE_ID)
AND line_type_code <> G_ORDER_LEVEL
AND list_price_override_flag = 'N' --po integration
AND pricing_status_code NOT IN (G_STATUS_DUP_PRICE_LIST,G_STATUS_INVALID_UOM_CONV)
AND (price_flag = G_YES OR --[julin/4708044]
(price_flag = G_PHASE AND p_freeze_override_flag = G_YES));
SELECT rounding_factor FROM qp_npreq_lines_tmp;
UPDATE qp_npreq_lines_tmp a
SET ROUNDING_FACTOR = (SELECT qcdt.selling_rounding_factor
FROM qp_currency_details qcdt, qp_list_headers_b qhdr
WHERE qhdr.list_header_id = a.price_list_header_id
AND qhdr.currency_header_id = qcdt.currency_header_id
AND qcdt.to_currency_code = a.currency_code
AND a.pricing_effective_date BETWEEN
NVL(TRUNC(qcdt.start_date_active),a.pricing_effective_date)
AND NVL(TRUNC(qcdt.end_date_active),a.pricing_effective_date)
AND ROWNUM <2) -- there maybe more than one rows rtrns here
WHERE ROUNDING_FACTOR IS NULL;
UPDATE qp_npreq_lines_tmp a
SET ROUNDING_FACTOR = (SELECT qhdr.rounding_factor
FROM qp_list_headers_b qhdr
WHERE qhdr.list_header_id = a.price_list_header_id)
WHERE ROUNDING_FACTOR IS NULL;
INDX,QP_PREQ_GRP.update_request_line_status.sel3,qp_npreq_ldets_tmp_N1,LINE_INDEX,1
INDX,QP_PREQ_GRP.update_request_line_status.sel3,qp_npreq_ldets_tmp_N1,PRICING_STATUS_CODE,2
INDX,QP_PREQ_GRP.update_request_line_status.sel3,qp_npreq_ldets_tmp_N1,PRICING_PHASE_ID,3
*/
UPDATE qp_npreq_lines_tmp a
SET processed_code = G_STS_LHS_NOT_FOUND
WHERE NOT EXISTS (SELECT 'x'
FROM qp_npreq_ldets_tmp b
WHERE a.line_index = b.line_index
AND b.pricing_status_code = G_STATUS_NEW
AND b.pricing_phase_id = G_PRICE_LIST_PHASE_ID)
AND line_type_code <> G_ORDER_LEVEL
AND list_price_override_flag in ( 'N', 'O') --po integration
AND (price_flag = G_YES OR --[julin/4708044]
(price_flag = G_PHASE AND p_freeze_override_flag = G_YES));
END Update_Request_Line_Status;
SELECT /*+ ORDERED USE_NL(ldets) index(pricing qp_preq_line_attrs_tmp_N5) l_pric_between_cur */
pricing.line_detail_index,
pricing.line_index,
pricing.value_from,
-- line group not applicable for price lists.ignore any code around line group for price lists
pricing.group_quantity,
pricing.group_amount,
pricing.setup_value_from,
pricing.setup_value_to,
pricing.product_uom_code,
pricing.attribute,
pricing.context,
pricing.attribute_type
FROM qp_npreq_line_attrs_tmp pricing,qp_npreq_ldets_tmp ldets
WHERE pricing.comparison_operator_type_code = G_OPERATOR_BETWEEN
AND pricing.datatype = p_datatype
AND pricing.pricing_phase_id = G_PRICE_LIST_PHASE_ID
AND pricing.attribute_type IN (G_PRICING_TYPE,G_QUALIFIER_TYPE)
AND pricing.pricing_status_code IN (G_STATUS_UNCHANGED, G_STATUS_NEW)
AND pricing.line_index > 0
AND pricing.line_detail_index = ldets.line_detail_index
AND ldets.pricing_status_code = G_STATUS_NEW
FOR UPDATE of pricing.pricing_status_code;
SELECT /*+ ORDERED USE_NL(ldets) index(pricing qp_preq_line_attrs_tmp_N5) l_mod_between_cur */
pricing.line_detail_index,
pricing.line_index,
pricing.value_from,
ldets.group_quantity,
ldets.line_quantity group_amount,
pricing.setup_value_from,
pricing.setup_value_to,
pricing.product_uom_code,
pricing.attribute,
pricing.context,
pricing.attribute_type
FROM qp_npreq_line_attrs_tmp pricing,qp_npreq_ldets_tmp ldets
WHERE pricing.comparison_operator_type_code = G_OPERATOR_BETWEEN
AND pricing.datatype = p_datatype
AND pricing.pricing_phase_id = p_pricing_phase_id
AND pricing.attribute_type = G_PRICING_TYPE
AND pricing.pricing_status_code IN (G_STATUS_UNCHANGED, G_STATUS_NEW)
AND pricing.line_index > 0
AND pricing.line_detail_index = ldets.line_detail_index
AND ldets.pricing_status_code = G_STATUS_NEW
FOR UPDATE of pricing.pricing_status_code;
SELECT /*+ ORDERED USE_NL(c) index(b qp_preq_line_attrs_tmp_N5) l_pric_character_between_cur */
b.line_detail_index,
b.line_index,
b.value_from,
b.setup_value_from,
b.setup_value_to,
b.product_uom_code,
b.attribute,
b.context,
b.attribute_type
FROM qp_npreq_line_attrs_tmp b,qp_npreq_ldets_tmp c
WHERE comparison_operator_type_code = G_OPERATOR_BETWEEN
AND b.pricing_phase_id = G_PRICE_LIST_PHASE_ID
AND datatype in (G_DATE_X,G_DATE_Y,G_VARCHAR)
AND attribute_type IN (G_PRICING_TYPE,G_QUALIFIER_TYPE)
AND b.pricing_status_code IN (G_STATUS_UNCHANGED,G_STATUS_NEW)
AND b.pricing_phase_id = p_pricing_phase_id
AND b.line_index > 0
AND b.line_detail_index = c.line_detail_index
AND c.pricing_status_code = G_STATUS_NEW
FOR update of b.pricing_status_code;
SELECT /*+ ORDERED USE_NL(c) index(b qp_preq_line_attrs_tmp_N5) l_mod_character_between_cur */
b.line_detail_index,
b.line_index,
b.value_from,
b.setup_value_from,
b.setup_value_to,
b.product_uom_code,
b.attribute,
b.context,
b.attribute_type
FROM qp_npreq_line_attrs_tmp b,qp_npreq_ldets_tmp c
WHERE comparison_operator_type_code = G_OPERATOR_BETWEEN
AND b.pricing_phase_id = p_pricing_phase_id
AND datatype in (G_DATE_X,G_DATE_Y,G_VARCHAR)
AND attribute_type = G_PRICING_TYPE
AND b.pricing_status_code IN (G_STATUS_UNCHANGED,G_STATUS_NEW)
AND b.pricing_phase_id = p_pricing_phase_id
AND b.line_index > 0
AND b.line_detail_index = c.line_detail_index
AND c.pricing_status_code = G_STATUS_NEW
FOR update of b.pricing_status_code;
SELECT /*+ ORDERED USE_NL(a) l_line_amount_cur */
fnd_number.canonical_to_number(c.value_from) group_value,
a.priced_quantity
FROM qp_npreq_line_attrs_tmp c, qp_npreq_lines_tmp a
WHERE a.line_index = p_line_index
AND a.LINE_INDEX = c.LINE_INDEX
AND c.line_detail_index = p_line_detail_index
AND c.context = p_context
AND c.attribute_type = p_attribute_type
AND c.attribute = p_attribute;
l_deleted_between VARCHAR2(1);
l_selected_volume_attr VARCHAR2(1); -- 2388011_new
UPDATE qp_npreq_line_attrs_tmp
SET PRICING_STATUS_CODE = G_DELETED_BETWEEN
WHERE CURRENT OF l_pric_character_between_cur;
UPDATE qp_npreq_line_attrs_tmp
SET PRICING_STATUS_CODE = G_DELETED_BETWEEN
WHERE CURRENT OF l_mod_character_between_cur;
l_deleted_between := 'F';
l_selected_volume_attr := G_QUANTITY; -- 2388011_new
l_selected_volume_attr := G_AMOUNT; -- 2388011_new
ELSE -- Make it a success,because line group between is done again,so do not delete
l_value_from_num := NULL;
l_selected_volume_attr := G_QUANTITY;
l_selected_volume_attr := G_AMOUNT;
l_selected_volume_attr := 'O'; -- 2388011_latest, for weight volume attribute
UPDATE qp_npreq_line_attrs_tmp
SET PRICING_STATUS_CODE = G_DELETED_BETWEEN
WHERE CURRENT OF l_pric_between_cur;
l_deleted_between := 'T';
IF (l_deleted_between = 'F') THEN
IF (I.group_quantity IS NOT NULL and I.group_quantity <> l_value_from_num and l_value_from_num IS NOT NULL
and p_line_group_flag IS NOT NULL) THEN
/*
INDX,QP_PREQ_GRP.evaluate_between.evaluate_between_upd1,qp_npreq_ldets_tmp_U1,LINE_DETAIL_INDEX,1
*/
UPDATE qp_npreq_ldets_tmp
SET GROUP_QUANTITY = l_value_from_num
WHERE LINE_INDEX = i.line_index
AND LINE_DETAIL_INDEX = i.line_detail_index;
SELECT UNIT_PRICE INTO l_list_price
FROM qp_npreq_lines_tmp
WHERE LINE_INDEX = i.line_index;
UPDATE qp_npreq_ldets_tmp
SET GROUP_AMOUNT = l_group_amount -- shu
WHERE LINE_INDEX = i.line_index
AND LINE_DETAIL_INDEX = i.line_detail_index;
UPDATE qp_npreq_ldets_tmp
SET LINE_QUANTITY = l_value_from_num
WHERE LINE_INDEX = i.line_index
AND LINE_DETAIL_INDEX = i.line_detail_index;
l_deleted_between := 'F';
ELSE -- Make it a success,because line group between is done again,so do not delete
l_value_from_num := NULL;
UPDATE qp_npreq_line_attrs_tmp
SET PRICING_STATUS_CODE = G_DELETED_BETWEEN
WHERE CURRENT OF l_mod_between_cur;
l_deleted_between := 'T';
IF (l_deleted_between = 'F') THEN
IF (I.group_quantity IS NOT NULL and I.group_quantity <> l_value_from_num and l_value_from_num IS NOT NULL
and p_line_group_flag IS NOT NULL) THEN
/*
INDX,QP_PREQ_GRP.evaluate_between.evaluate_between_upd1,qp_npreq_ldets_tmp_U1,LINE_DETAIL_INDEX,1
*/
UPDATE qp_npreq_ldets_tmp
SET GROUP_QUANTITY = l_value_from_num, --2388011_new
SELECTED_VOLUME_ATTR = l_selected_volume_attr -- 2388011_new
WHERE LINE_INDEX = i.line_index
AND LINE_DETAIL_INDEX = i.line_detail_index;
SELECT UNIT_PRICE INTO l_list_price
FROM qp_npreq_lines_tmp
WHERE LINE_INDEX = i.line_index;
UPDATE qp_npreq_ldets_tmp
SET GROUP_AMOUNT = l_group_amount, -- 2388011_new, fix group of lines lumpsum based on ITEM_AMOUNT
SELECTED_VOLUME_ATTR = l_selected_volume_attr -- 2388011_new
WHERE LINE_INDEX = i.line_index
AND LINE_DETAIL_INDEX = i.line_detail_index;
UPDATE qp_npreq_ldets_tmp
SET LINE_QUANTITY = l_value_from_num, --2388011_new
SELECTED_VOLUME_ATTR = l_selected_volume_attr --2388011_new
WHERE LINE_INDEX = i.line_index
AND LINE_DETAIL_INDEX = i.line_detail_index;
UPDATE qp_npreq_ldets_tmp --upd4
SET PRICING_STATUS_CODE = G_DELETED_BETWEEN
WHERE LINE_DETAIL_INDEX = l_line_detail_tbl(i);
SELECT /*+ ordered use_nl(qplines, qprm, qppa, qpll, qph, qcdt) */
qpll.pricing_group_sequence,
qpll.list_header_id,
qppa.list_line_id,
qppa.product_attribute_context, --setup values
qppa.product_attribute,
qppa.product_attr_value,
qppa.pricing_attribute_context,
qppa.pricing_attribute,
qppa.pricing_attr_value_from,
qppa.pricing_attr_value_to,
qppa.product_uom_code,
qplat_pricing.value_from,
qplat_pricing.attribute,
nvl(qplines.priced_uom_code,qplines.line_uom_code) line_uom_code,
qplines.line_uom_code order_uom_code, -- shulin, for total_item_quantity uom conversion
qplines.line_index,
nvl(qplines.priced_quantity,qplines.line_quantity) line_quantity,
qpll.list_line_type_code,
qpll.modifier_level_code,
qpll.benefit_qty,
qpll.benefit_uom_code,
qpll.list_line_no,
qpll.accrual_flag,
qpll.accrual_conversion_rate,
qpll.estim_accrual_rate,
qpll.recurring_value, -- block pricing
qpll.arithmetic_operator,
qpll.operand,
qpll.list_price,
qpll.pricing_phase_id,
qpll.automatic_flag,
qpll.price_break_type_code,
qpll.incompatibility_GRP_CODE,
qpll.override_flag,
qpll.print_on_invoice_flag,
qpll.price_by_formula_id,
qpll.product_precedence,
nvl(qplines.usage_pricing_type,G_REGULAR_USAGE_TYPE) usage_pricing_type,
QCDT.ROUNDING_FACTOR, /* vivek */
QCDT.CURRENCY_DETAIL_ID, /* sunilpandey */
QCDT.CURRENCY_HEADER_ID, /* vivek */
QCDT.SELLING_ROUNDING_FACTOR, /* vivek */
QPLINES.CURRENCY_CODE ORDER_CURRENCY, /* vivek */
QPLINES.PRICING_EFFECTIVE_DATE, /* vivek */
QPH.CURRENCY_CODE BASE_CURRENCY_CODE, /* vivek */
qplines.contract_start_date, -- R12 partial period pricing
qplines.contract_end_date -- R12 partial period pricing
FROM
qp_npreq_line_attrs_tmp qplat_pricing,
qp_npreq_lines_tmp qplines,
qp_rltd_modifiers qprm,
qp_pricing_attributes qppa,
qp_list_lines qpll
,qp_list_headers_b qph /* Vivek */
,qp_currency_details qcdt /* Vivek */
WHERE qprm.from_rltd_modifier_id = p_list_line_id
AND qprm.to_rltd_modifier_id = qppa.list_line_id
AND qppa.list_line_id = qpll.list_line_id
AND qplat_pricing.context = G_PRIC_VOLUME_CONTEXT
AND qppa.pricing_attribute_context = G_PRIC_VOLUME_CONTEXT
AND qplat_pricing.attribute = qppa.pricing_attribute
AND qplat_pricing.attribute_type = G_PRICING_TYPE
AND qplat_pricing.line_index = qplines.line_index
AND qplat_pricing.pricing_status_code = G_STATUS_UNCHANGED
AND qplat_pricing.line_index = p_line_index
-- and qp_number.canonical_to_number(qplat_pricing.value_from) <> 0 -- 5158413
-- commented above for bug#6896139 as fix for bug#5158413 did not consider for G_LINE_GROUP,lines with line qty as 0
--(i.e qplat_pricing.value_from=0) even when the qualifier group count for G_LINE_GROUP was greater than zero
and qpll.list_header_id = qph.list_header_id /* Vivek */
and QPH.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID /* Vivek */
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND ( /* Vivek */
(qcdt.curr_attribute_context is null /* Vivek */
and not exists /* Vivek */
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1 /* Vivek */
where qcdt1.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt1.curr_attribute_context = pa_tmp.context /* Vivek */
and qcdt1.curr_attribute = pa_tmp.attribute /* Vivek */
and qcdt1.curr_attribute_value = pa_tmp.value_from /* Vivek */
and qcdt1.curr_attribute_type = pa_tmp.ATTRIBUTE_TYPE /* Vivek */
and qcdt1.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt1.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT1.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT1.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
) /* Vivek */
) /* Vivek */
OR /* Vivek */
(qcdt.curr_attribute_context is not null /* Vivek */
and qcdt.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2 /* Vivek */
where qcdt2.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt2.curr_attribute_context = pa_tmp1.context /* Vivek */
and qcdt2.curr_attribute = pa_tmp1.attribute /* Vivek */
and qcdt2.curr_attribute_value = pa_tmp1.value_from /* Vivek */
and qcdt2.curr_attribute_type = pa_tmp1.ATTRIBUTE_TYPE /* Vivek */
and qcdt2.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt2.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp1.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT2.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT2.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
) /* Vivek */
) /* Vivek */
) /* Vivek */
and (( (p_reduced_pbh_processing = G_YES) --[julin/3783009/4712794]
and (nvl(qplines.usage_pricing_type,G_REGULAR_USAGE_TYPE) <> G_AUTHORING_TYPE)
and ( (qpll.price_break_type_code = G_POINT_BREAK and qp_number.canonical_to_number(qplat_pricing.value_from)
between qp_number.canonical_to_number(qppa.pricing_attr_value_from)
and qp_number.canonical_to_number(qppa.pricing_attr_value_to)
) OR
(qpll.price_break_type_code = G_RANGE_BREAK and qp_number.canonical_to_number(qppa.pricing_attr_value_from)
<= qp_number.canonical_to_number(qplat_pricing.value_from)
)
)
)
or
(p_reduced_pbh_processing = G_NO)
)
ORDER BY qp_number.canonical_to_number(qppa.pricing_attr_value_from); --bug#1819397
SELECT /*+ ordered use_nl(qplines, qprm, qppa, qpll) */
qpll.pricing_group_sequence,
qpll.list_header_id,
qppa.list_line_id,
qppa.product_attribute_context, --setup values
qppa.product_attribute,
qppa.product_attr_value,
qppa.pricing_attribute_context,
qppa.pricing_attribute,
qppa.pricing_attr_value_from,
qppa.pricing_attr_value_to,
qppa.product_uom_code,
qplat_pricing.value_from,
qplat_pricing.attribute,
nvl(qplines.priced_uom_code,qplines.line_uom_code) line_uom_code,
qplines.line_uom_code order_uom_code, -- shulin, for total_item_quantity uom conversion
qplines.line_index,
nvl(qplines.priced_quantity,qplines.line_quantity) line_quantity,
qpll.list_line_type_code,
qpll.modifier_level_code,
qpll.benefit_qty,
qpll.benefit_uom_code,
qpll.list_line_no,
qpll.accrual_flag,
qpll.accrual_conversion_rate,
qpll.estim_accrual_rate,
qpll.recurring_value, -- block pricing
qpll.arithmetic_operator,
qpll.operand,
qpll.list_price,
qpll.pricing_phase_id,
qpll.automatic_flag,
qpll.price_break_type_code,
qpll.incompatibility_GRP_CODE,
qpll.override_flag,
qpll.print_on_invoice_flag,
qpll.price_by_formula_id,
qpll.product_precedence,
nvl(qplines.usage_pricing_type,G_REGULAR_USAGE_TYPE) usage_pricing_type,
NULL ROUNDING_FACTOR, /* vivek */
NULL CURRENCY_DETAIL_ID, /* sunilpandey */
NULL CURRENCY_HEADER_ID, /* vivek */
NULL SELLING_ROUNDING_FACTOR, /* vivek */
NULL ORDER_CURRENCY, /* vivek */
NULL PRICING_EFFECTIVE_DATE, /* vivek */
NULL BASE_CURRENCY_CODE, /* vivek */
qplines.contract_start_date, -- R12 partial period pricing
qplines.contract_end_date -- R12 partial period pricing
FROM
qp_npreq_line_attrs_tmp qplat_pricing,
qp_npreq_lines_tmp qplines,
qp_rltd_modifiers qprm,
qp_pricing_attributes qppa,
qp_list_lines qpll
WHERE qprm.from_rltd_modifier_id = p_list_line_id
AND qprm.to_rltd_modifier_id = qppa.list_line_id
AND qppa.list_line_id = qpll.list_line_id
AND qplat_pricing.context = G_PRIC_VOLUME_CONTEXT
AND qppa.pricing_attribute_context = G_PRIC_VOLUME_CONTEXT
AND qplat_pricing.attribute = qppa.pricing_attribute
AND qplat_pricing.attribute_type = G_PRICING_TYPE
AND qplat_pricing.line_index = qplines.line_index
AND qplat_pricing.pricing_status_code = G_STATUS_UNCHANGED
AND qplat_pricing.line_index = p_line_index
-- and qp_number.canonical_to_number(qplat_pricing.value_from) <> 0 -- 5158413
-- commented above for bug#6896139 as fix for bug#5158413 did not consider for G_LINE_GROUP,lines with line qty as 0
--(i.e qplat_pricing.value_from=0) even when the qualifier group count for G_LINE_GROUP was greater than zero
and (( (p_reduced_pbh_processing = G_YES) --[julin/3783009/4712794]
and (nvl(qplines.usage_pricing_type,G_REGULAR_USAGE_TYPE) <> G_AUTHORING_TYPE)
and ( (qpll.price_break_type_code = G_POINT_BREAK and qp_number.canonical_to_number(qplat_pricing.value_from)
between qp_number.canonical_to_number(qppa.pricing_attr_value_from)
and qp_number.canonical_to_number(qppa.pricing_attr_value_to)
) OR
(qpll.price_break_type_code = G_RANGE_BREAK and qp_number.canonical_to_number(qppa.pricing_attr_value_from)
<= qp_number.canonical_to_number(qplat_pricing.value_from)
)
)
)
or
(p_reduced_pbh_processing = G_NO)
)
ORDER BY qp_number.canonical_to_number(qppa.pricing_attr_value_from); --bug#1819397
SELECT net_amount_flag
FROM qp_list_lines
WHERE list_line_id = p_list_line_id;
l_selected_volume_attr VARCHAR2(1);
l_l_selected_volume_attr_tbl FLAG_TYPE; -- only need VARCHAR(1)
l_selected_volume_attr := G_QUANTITY;
l_selected_volume_attr := G_AMOUNT;
UPDATE qp_npreq_ldets_tmp --upd1
SET GROUP_QUANTITY = l_quantity, --2388011_new
SELECTED_VOLUME_ATTR = l_selected_volume_attr -- 2388011_new, ASK RAVI, commented out??
WHERE CREATED_FROM_LIST_HEADER_ID = p_list_header_id
AND PRICING_PHASE_ID = p_pricing_phase_id
AND PRICING_STATUS_CODE = QP_PREQ_GRP.G_STATUS_NEW
AND CREATED_FROM_LIST_LINE_ID = p_list_line_id
AND LINE_INDEX = p_line_index;
l_selected_volume_attr := G_QUANTITY;
l_selected_volume_attr := 'O'; --2388011_latest
l_selected_volume_attr := G_AMOUNT;
UPDATE qp_npreq_ldets_tmp --upd2
SET LINE_QUANTITY = l_quantity, --2388011_new
SELECTED_VOLUME_ATTR = l_selected_volume_attr -- 2388011_new
WHERE CREATED_FROM_LIST_HEADER_ID = p_list_header_id
AND PRICING_PHASE_ID = p_pricing_phase_id
AND PRICING_STATUS_CODE = QP_PREQ_GRP.G_STATUS_NEW
AND CREATED_FROM_LIST_LINE_ID = p_list_line_id
AND LINE_INDEX = p_line_index;
select break_uom_code, break_uom_context, break_uom_attribute
into l_break_uom_code, l_break_uom_context, l_break_uom_attribute
from qp_npreq_ldets_tmp
where line_detail_index = p_line_detail_index;
select value_from
into l_passed_break_uom
from qp_npreq_line_attrs_tmp
where line_index = p_line_index
and context = l_break_uom_context
and attribute = l_break_uom_attribute
and pricing_status_code = G_STATUS_UNCHANGED
and attribute_type = G_PRICING_TYPE;
select contract_start_date, contract_end_date
into l_contract_start_date, l_contract_end_date
from qp_npreq_lines_tmp
where line_index = p_line_index;
l_l_selected_volume_attr_tbl(i) := l_selected_volume_attr;
engine_debug('Inserting line_detail');
INSERT INTO qp_npreq_ldets_tmp
(LINE_DETAIL_INDEX,
LINE_DETAIL_TYPE_CODE,
PRICE_BREAK_TYPE_CODE,
LINE_INDEX,
CREATED_FROM_LIST_HEADER_ID,
CREATED_FROM_LIST_LINE_ID,
CREATED_FROM_LIST_LINE_TYPE,
CREATED_FROM_LIST_TYPE_CODE,
PRICING_GROUP_SEQUENCE,
PRICING_PHASE_ID,
OPERAND_CALCULATION_CODE,
OPERAND_VALUE,
PRICE_FORMULA_ID,
PRICING_STATUS_CODE,
PROCESSED_FLAG,
AUTOMATIC_FLAG,
OVERRIDE_FLAG,
PRINT_ON_INVOICE_FLAG,
MODIFIER_LEVEL_CODE,
BENEFIT_QTY,
BENEFIT_UOM_CODE,
LIST_LINE_NO,
ACCRUAL_FLAG,
ACCRUAL_CONVERSION_RATE,
ESTIM_ACCRUAL_RATE,
RECURRING_VALUE,
SELECTED_VOLUME_ATTR,
GROUP_QUANTITY,
GROUP_AMOUNT,
ROUNDING_FACTOR,
CURRENCY_DETAIL_ID,
CURRENCY_HEADER_ID,
SELLING_ROUNDING_FACTOR,
ORDER_CURRENCY,
PRICING_EFFECTIVE_DATE,
BASE_CURRENCY_CODE
)
VALUES (l_l_line_detail_index_tbl(i),
l_l_G_CHILD_DETAIL_TYPE_tbl(i),
l_h_price_break_type_code_tbl(i),
l_l_p_line_index_tbl(i),
l_h_list_header_id_tbl(i),
l_h_list_line_id_tbl(i),
l_h_list_line_type_code_tbl(i),
l_l_list_type_code_tbl(i),
l_h_pricing_group_sequence_tbl(i),
l_h_pricing_phase_id_tbl(i),
l_h_arithmetic_operator_tbl(i),
l_h_operand_tbl(i),
l_h_price_by_formula_id_tbl(i),
l_l_G_STATUS_NEW_tbl(i),
l_l_G_NOT_PROCESSED_tbl(i),
l_h_automatic_flag_tbl(i),
l_h_override_flag_tbl(i),
l_h_print_on_invoice_flag_tbl(i),
l_h_modifier_level_code_tbl(i),
l_h_BENEFIT_QTY_tbl(i),
l_h_BENEFIT_UOM_CODE_tbl(i),
l_h_LIST_LINE_NO_tbl(i),
l_h_ACCRUAL_FLAG_tbl(i),
l_h_accrual_conv_rate_tbl(i),
l_h_ESTIM_ACCRUAL_RATE_tbl(i),
l_h_RECURRING_VALUE_tbl(i), -- block pricing
l_l_selected_volume_attr_tbl(i),
l_l_group_quantity_tbl(i),
l_l_group_amount_tbl(i),
l_h_ROUNDING_FACTOR_tbl(i),
l_h_CURRENCY_DETAIL_ID_tbl(i),
l_h_CURRENCY_HEADER_ID_tbl(i),
l_h_selling_round_factor_tbl(i),
l_h_ORDER_CURRENCY_tbl(i),
l_h_PRICING_EFFECTIVE_DATE_tbl(i),
l_h_BASE_CURRENCY_CODE_tbl(i)
);
UPDATE qp_npreq_ldets_tmp --upd3
SET processed_flag = G_PROCESSED -- indicates that this PBH is processed
WHERE line_detail_index = p_line_detail_index;
INSERT INTO qp_npreq_line_attrs_tmp
(LINE_INDEX,
LINE_DETAIL_INDEX,
ATTRIBUTE_LEVEL,
ATTRIBUTE_TYPE,
CONTEXT,
ATTRIBUTE,
VALUE_FROM,
VALUE_TO,
SETUP_VALUE_FROM,
SETUP_VALUE_TO,
PROCESSED_CODE,
COMPARISON_OPERATOR_TYPE_CODE,
PRICING_STATUS_CODE
)
VALUES (l_l_p_line_index_tbl(J),
l_l_line_detail_index_tbl(J),
l_l_G_DETAIL_LEVEL_tbl(J),
l_l_G_PRICING_TYPE_tbl(J),
l_h_pricing_attr_context_tbl(J),
l_h_pricing_attribute_tbl(J),
l_h_pricing_attr_val_from_tbl(J),
l_h_pricing_attr_val_to_tbl(J),
l_h_pricing_attr_val_from_tbl(J),
l_h_pricing_attr_val_to_tbl(J),
l_l_G_BY_PBH_tbl(J),
l_l_G_OPERATOR_BETWEEN_tbl(J),
l_l_G_STATUS_NEW_tbl(J)
);
INSERT INTO qp_npreq_rltd_lines_tmp
(LINE_INDEX,
LINE_DETAIL_INDEX,
RELATIONSHIP_TYPE_CODE,
RELATED_LINE_INDEX,
RELATED_LINE_DETAIL_INDEX,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT,
LIST_LINE_ID,
RELATED_LIST_LINE_ID,
RELATED_LIST_LINE_TYPE,
OPERAND_CALCULATION_CODE,
OPERAND,
PRICING_GROUP_SEQUENCE,
RELATIONSHIP_TYPE_DETAIL,
SETUP_VALUE_FROM,
SETUP_VALUE_TO,
QUALIFIER_VALUE
)
VALUES (l_l_p_line_index_tbl(J),
l_l_p_line_detail_index_tbl(J),
l_l_G_PBH_LINE_tbl(J),
l_l_p_line_index_tbl(J),
l_l_line_detail_index_tbl(J),
l_l_G_STATUS_NEW_tbl(J),
l_l_G_PROCESSED_tbl(J),
l_l_p_list_line_id_tbl(J),
l_h_list_line_id_tbl(J),
l_h_list_line_type_code_tbl(J),
l_h_arithmetic_operator_tbl(J),
l_h_operand_tbl(J),
l_h_pricing_group_sequence_tbl(J),
l_h_price_break_type_code_tbl(J),
qp_number.canonical_to_number(l_h_pricing_attr_val_from_tbl(J)),
qp_number.canonical_to_number(l_h_pricing_attr_val_to_tbl(J)),
l_l_quantity_tbl(J));
|delete children pbh lines if the parent fails
+-----------------------------------------------------------
*/
PROCEDURE Delete_Invalid_PBH_Children(p_line_index IN PLS_INTEGER,
p_pricing_phase_id NUMBER,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2) AS
/*
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,LINE_INDEX,1
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,PRICING_PHASE_ID,2
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,ASK_FOR_FLAG,3
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,CREATED_FROM_LIST_LINE_TYPE,4
*/
CURSOR l_check_deleted_pbh_cur(p_line_index IN PLS_INTEGER) IS
SELECT line_detail_index
FROM qp_npreq_ldets_tmp
WHERE created_from_list_line_type = G_PRICE_BREAK_TYPE
AND line_index = p_line_index
AND pricing_phase_id = p_pricing_phase_id
AND pricing_status_code <> G_STATUS_NEW
AND nvl(updated_flag,'N') = 'N'; -- to not delete passed adj by the calling app since updated_flag='Y'
l_routine VARCHAR2(240):='QP_PREQ_GRP.Delete_invalid_PBH_Children';
engine_debug('in Delete_Invalid_PBH_Children');
FOR I IN l_check_deleted_pbh_cur(p_line_index) LOOP
/*
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.delete_invalid_pbh_children_upd1,qp_npreq_ldets_tmp_U1,LINE_DETAIL_INDEX,1
*/
/*
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.delete_invalid_pbh_children_sel1,-No Index Used-,NA,NA
*/
UPDATE qp_npreq_ldets_tmp a
SET PRICING_STATUS_CODE = G_DELETED_PARENT_FAILS
WHERE line_detail_index IN
(SELECT related_line_detail_index
FROM qp_npreq_rltd_lines_tmp
WHERE line_detail_index = I.line_detail_index);
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.upd2,-No Index Used-,NA,NA
*/
UPDATE qp_npreq_rltd_lines_tmp --upd2
SET PRICING_STATUS_CODE = G_DELETED_PARENT_FAILS
WHERE line_detail_index = I.line_detail_index;
END Delete_Invalid_PBH_Children;
SELECT created_from_list_header_id list_header_id , created_from_list_line_id list_line_id,
group_quantity ,group_amount, line_detail_index, line_index, line_quantity -- 2388011, pbh_grp_lines
, created_from_list_type_code
FROM qp_npreq_ldets_tmp a
WHERE created_from_list_line_type = G_PRICE_BREAK_TYPE
AND pricing_status_code = G_STATUS_NEW
AND pricing_phase_id = p_pricing_phase_id
AND nvl(processed_flag,G_NOT_PROCESSED) = G_NOT_PROCESSED;
G_LIST_HEADER_ID_TBL_G.delete;
G_LIST_LINE_ID_TBL_G.delete;
G_GROUP_QUANTITY_TBL_G.delete;
G_GROUP_AMOUNT_TBL_G.delete;
G_LINE_DETAIL_INDEX_TBL_G.delete;
G_LINE_INDEX_TBL_G.delete;
G_LINE_QUANTITY_TBL_G.delete;
G_LIST_TYPE_CODE_TBL_G.delete;
UPDATE qp_npreq_ldets_tmp
SET PRICING_STATUS_CODE = G_DELETED_PBH
WHERE LINE_DETAIL_INDEX = g_failed_ld_tbl_g(i);
UPDATE qp_npreq_lines_tmp a
SET processed_code = G_STS_LHS_NOT_FOUND
WHERE NOT EXISTS (SELECT 'x'
FROM qp_npreq_ldets_tmp b
WHERE a.line_index = b.line_index
AND b.pricing_status_code = G_STATUS_NEW
AND b.pricing_phase_id = G_PRICE_LIST_PHASE_ID)
AND line_type_code <> G_ORDER_LEVEL;
SELECT /*+ ORDERED USE_NL(b) index(a qp_preq_line_attrs_tmp_N5) header_level_qual_attrs_cur */
a.LIST_HEADER_ID,
a.LIST_LINE_ID,
a.LINE_INDEX,
a.GROUPING_NUMBER,
a.LINE_DETAIL_INDEX,
COUNT(distinct CONTEXT || ATTRIBUTE || SETUP_VALUE_FROM ) NO_OF_QUALIFIERS_IN_GRP --#bug1761272
FROM qp_npreq_line_attrs_tmp a,qp_npreq_ldets_tmp b
WHERE a.PRICING_PHASE_ID = p_pricing_phase_id
AND a.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND a.QUALIFIER_TYPE = G_HEADER_QUALIFIER
AND a.LINE_DETAIL_INDEX = b.LINE_DETAIL_INDEX
AND b.PRICING_STATUS_CODE = G_STATUS_NEW
AND a.PRICING_STATUS_CODE IN (G_STATUS_NEW,G_DELETED_EXCLUDER,G_DELETED_BETWEEN)
GROUP BY a.LIST_HEADER_ID, a.LINE_INDEX,a.LINE_DETAIL_INDEX,a.LIST_LINE_ID,a.GROUPING_NUMBER
ORDER BY a.LIST_HEADER_ID, a.LINE_INDEX,a.LINE_DETAIL_INDEX,a.LIST_LINE_ID,a.GROUPING_NUMBER ;
SELECT /*+ ORDERED USE_NL(b) index(a qp_preq_line_attrs_tmp_N5) line_level_qual_attrs_cur2 */
a.LIST_HEADER_ID,
a.LIST_LINE_ID,
a.LINE_INDEX,
a.GROUPING_NUMBER,
a.LINE_DETAIL_INDEX,
COUNT(distinct CONTEXT || ATTRIBUTE || SETUP_VALUE_FROM ) NO_OF_QUALIFIERS_IN_GRP --#bug1761272
FROM qp_npreq_line_attrs_tmp a,qp_npreq_ldets_tmp b
WHERE a.PRICING_PHASE_ID = p_pricing_phase_id
AND a.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND a.QUALIFIER_TYPE = G_LINE_QUALIFIER
AND a.PRICING_STATUS_CODE IN (G_STATUS_NEW,G_DELETED_EXCLUDER,G_DELETED_BETWEEN)
AND a.LINE_DETAIL_INDEX = b.LINE_DETAIL_INDEX
AND b.PRICING_STATUS_CODE = G_STATUS_NEW
GROUP BY a.LIST_HEADER_ID, a.LINE_INDEX,a.LINE_DETAIL_INDEX,a.LIST_LINE_ID,a.GROUPING_NUMBER
ORDER BY a.LIST_HEADER_ID, a.LINE_INDEX,a.LINE_DETAIL_INDEX,a.LIST_LINE_ID,a.GROUPING_NUMBER ;
SELECT COUNT(*) NO_OF_QUALIFIERS_IN_GRP
FROM QP_QUALIFIERS a , QP_LIST_HEADERS_B b
WHERE a.LIST_HEADER_ID = p_list_header_id
AND a.list_line_id = -1
AND a.QUALIFIER_CONTEXT = 'MODLIST'
AND a.QUALIFIER_ATTRIBUTE = 'QUALIFIER_ATTRIBUTE4'
AND a.LIST_HEADER_ID = b.LIST_HEADER_ID
AND b.LIST_TYPE_CODE IN ('AGR', 'PRL') ;
SELECT COUNT(*) NO_OF_QUALIFIERS_IN_GRP
FROM QP_QUALIFIERS a , QP_LIST_HEADERS_B b
WHERE a.LIST_HEADER_ID = p_list_header_id
AND a.list_line_id = p_list_line_id
AND a.QUALIFIER_CONTEXT = 'MODLIST'
AND a.QUALIFIER_ATTRIBUTE = 'QUALIFIER_ATTRIBUTE4'
AND a.LIST_HEADER_ID = b.LIST_HEADER_ID
AND b.LIST_TYPE_CODE IN ('AGR', 'PRL') ;
SELECT COUNT(*) NO_OF_QUALIFIERS_IN_GRP
FROM QP_QUALIFIERS a
WHERE a.LIST_HEADER_ID = p_list_header_id
AND a.list_line_id = -1
AND a.qualifier_grouping_no = p_grouping_number ;
SELECT count(*)
FROM qp_qualifiers
WHERE list_header_id = p_list_header_id
AND qualifier_grouping_no = -1
AND list_line_id = -1;
SELECT count(*)
FROM qp_qualifiers
WHERE list_header_id = p_list_header_id
AND list_line_id = -1
AND comparison_operator_code <> 'NOT =';
SELECT count(*)
FROM qp_qualifiers
WHERE list_header_id = p_list_header_id
AND list_line_id = p_list_line_id
AND qualifier_grouping_no = -1;
SELECT count(*)
FROM qp_qualifiers
WHERE list_header_id = p_list_header_id
AND list_line_id = p_list_line_id;
SELECT LIST_HEADER_ID,
LIST_LINE_ID ,
LINE_INDEX,
GROUPING_NUMBER,
LINE_DETAIL_INDEX,
COUNT(distinct CONTEXT || ATTRIBUTE || SETUP_VALUE_FROM ) NO_OF_QUALIFIERS_IN_GRP --#bug1761272
FROM qp_npreq_line_attrs_tmp
WHERE ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND QUALIFIER_TYPE = G_LINE_QUALIFIER
AND PRICING_STATUS_CODE IN (G_STATUS_NEW,G_DELETED_EXCLUDER,G_DELETED_BETWEEN)
AND LIST_HEADER_ID = p_list_header_id
AND LIST_LINE_ID = p_list_line_id
--AND LINE_INDEX = nvl(p_line_index,LINE_INDEX)
GROUP BY LIST_HEADER_ID,LIST_LINE_ID,LINE_INDEX,LINE_DETAIL_INDEX,GROUPING_NUMBER
ORDER BY LIST_HEADER_ID,LIST_LINE_ID,LINE_INDEX,LINE_DETAIL_INDEX,GROUPING_NUMBER ;
SELECT COUNT(*) NO_OF_QUALIFIERS_IN_GRP
FROM QP_QUALIFIERS a
WHERE a.LIST_HEADER_ID = p_list_header_id
AND a.list_line_id = p_list_line_id
AND a.qualifier_grouping_no = p_grouping_no;
SELECT 'X'
FROM qp_npreq_line_attrs_tmp
WHERE list_header_id = p_list_header_id
AND line_index = p_line_index
AND ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND QUALIFIER_TYPE = G_HEADER_QUALIFIER
AND PRICING_STATUS_CODE = G_STATUS_NEW;
SELECT 'X'
FROM qp_qualifiers
WHERE list_header_id = p_list_header_id
AND list_line_id = p_list_line_id;
SELECT 'X'
FROM qp_qualifiers
WHERE LIST_HEADER_ID = p_list_header_id
AND list_line_id = -1;
SELECT /*+ ORDERED USE_NL(b) index(a qp_preq_line_attrs_tmp_N5) index(b QP_PREQ_LDETS_TMP_U1) product_level_attrs_cur */ --5658579
a.LIST_HEADER_ID , a.LIST_LINE_ID , a.LINE_INDEX,
SUM(distinct(decode(a.attribute_type,G_PRODUCT_TYPE,1,0))) +
COUNT(distinct(decode(a.attribute_type,G_PRICING_TYPE, a.context || ' ' || a.attribute || ' ' || setup_value_from ,NULL)))
NO_OF_PATTS_IN_GRP -- Bug No: 7129919
FROM qp_npreq_line_attrs_tmp a , qp_npreq_ldets_tmp b
WHERE a.PRICING_PHASE_ID = p_pricing_phase_id
AND a.CONTEXT <> G_PRIC_VOLUME_CONTEXT
AND a.ATTRIBUTE_TYPE in ( G_PRICING_TYPE,G_PRODUCT_TYPE)
AND a.PRICING_STATUS_CODE = G_STATUS_NEW
AND a.LINE_DETAIL_INDEX = b.LINE_DETAIL_INDEX
AND b.PRICING_STATUS_CODE = G_STATUS_NEW
AND NOT EXISTS (SELECT 'X'
FROM QP_RLTD_MODIFIERS b
WHERE a.LIST_LINE_ID = b.TO_RLTD_MODIFIER_ID
and b.rltd_modifier_grp_type <> 'COUPON') -- 5439022
GROUP BY a.LIST_HEADER_ID , a.LIST_LINE_ID,a.LINE_INDEX;
SELECT COUNT(*) NO_OF_PATTS_IN_GRP
FROM QP_PRICING_ATTRIBUTES a
WHERE a.LIST_LINE_ID = p_list_line_id
AND a.EXCLUDER_FLAG <> G_YES;
SELECT 'X'
FROM qp_qualifiers
WHERE list_header_id = p_list_header_id
AND list_line_id = p_list_line_id
AND qualifier_grouping_no <> -1;
SELECT 'X'
FROM qp_npreq_line_attrs_tmp
WHERE line_index = p_line_index
AND list_line_id = p_list_line_id
AND list_header_id = p_list_header_id
AND attribute_type = G_QUALIFIER_TYPE
AND qualifier_type = G_LINE_QUALIFIER
AND pricing_status_code = G_STATUS_NEW -- Expect a bug with this join condition
AND grouping_number <> -1;
SELECT 'X'
FROM qp_qualifiers
WHERE list_header_id = p_list_header_id
AND list_line_id = -1
AND qualifier_grouping_no <> -1;
SELECT 'X'
FROM qp_npreq_line_attrs_tmp
WHERE line_index = p_line_index
AND list_header_id = p_list_header_id
AND attribute_type = G_QUALIFIER_TYPE
AND qualifier_type = G_HEADER_QUALIFIER
AND pricing_status_code = G_STATUS_NEW -- Expect a bug with this join condition
AND grouping_number <> -1;
SELECT COUNT(*)
FROM qp_npreq_line_attrs_tmp
WHERE LINE_INDEX = p_line_index
AND LIST_HEADER_ID = p_list_header_id
AND nvl(GROUPING_NUMBER,0) = nvl(p_grouping_no,0)
AND PRICING_STATUS_CODE IN (G_DELETED_EXCLUDER , G_DELETED_BETWEEN)
AND ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND QUALIFIER_TYPE = G_HEADER_QUALIFIER;
SELECT COUNT(*)
FROM qp_npreq_line_attrs_tmp
WHERE LINE_INDEX = p_line_index
AND LIST_HEADER_ID = p_list_header_id
AND LIST_LINE_ID = p_list_line_id
AND nvl(GROUPING_NUMBER,0) = nvl(p_grouping_no,0)
AND PRICING_STATUS_CODE IN (G_DELETED_EXCLUDER , G_DELETED_BETWEEN)
AND ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND QUALIFIER_TYPE = G_LINE_QUALIFIER;
SELECT 1
FROM DUAL
WHERE EXISTS
(SELECT 'x'
FROM QP_PREQ_LINE_ATTRS_TMP
WHERE LINE_INDEX = p_line_index
AND LIST_HEADER_ID = p_list_header_id
AND LIST_LINE_ID = p_list_line_id
AND PRICING_STATUS_CODE = G_DELETED_BETWEEN
AND ATTRIBUTE_TYPE = G_PRICING_TYPE);
SELECT COUNT(*)
FROM qp_npreq_line_attrs_tmp
WHERE LINE_INDEX = p_line_index
AND LIST_HEADER_ID = p_list_header_id
AND LIST_LINE_ID = p_list_line_id
AND PRICING_STATUS_CODE = G_DELETED_BETWEEN
AND ATTRIBUTE_TYPE = G_PRICING_TYPE;
l_deleted_flag BOOLEAN:= FALSE;
-- Delete the no of quals where pl is a qualifier(for price lists only)
OPEN hdr_lvl_setup_pl_quals_cur(i.list_header_id);
l_deleted_flag := FALSE;
engine_debug('Update #7');
l_deleted_flag := TRUE;
IF line_lvl_setup_exist_cur%FOUND AND l_deleted_flag = FALSE THEN --has line level qualifiers
IF G_DEBUG_ENGINE = FND_API.G_TRUE THEN
engine_debug('Has Line Level Qualifiers');
-- Delete the no of quals where pl is a qualifier(for price lists only)
OPEN line_level_setup_pl_quals_cur(K.list_header_id,K.list_line_id);
engine_debug('Update #7');
engine_debug('The whole List Line is getting deleted');
engine_debug('Update #1');
engine_debug('The whole List Line is getting deleted#1');
engine_debug('Update #2');
engine_debug('Update #3');
engine_debug('Deleted Line Details in Table');
UPDATE qp_npreq_ldets_tmp --upd1
SET PRICING_STATUS_CODE = G_DELETED_GRP,
PRICING_STATUS_TEXT = 'Deleted in header+/-line grouping'
WHERE line_detail_index = l_del_tbl(i);
UPDATE qp_npreq_line_attrs_tmp
SET PRICING_STATUS_CODE = G_DELETED_GRP,
PRICING_STATUS_TEXT = 'Deleted in header +/- line grouping'
WHERE line_detail_index = l_del_tbl(i)
AND ATTRIBUTE_TYPE = G_QUALIFIER_TYPE; */
UPDATE qp_npreq_ldets_tmp --upd2
SET PRICING_STATUS_CODE = G_STATUS_NEW
WHERE line_detail_index = l_success_tbl(i);
UPDATE qp_npreq_line_attrs_tmp
SET PRICING_STATUS_CODE = G_STATUS_NEW
WHERE line_detail_index = l_success_tbl(i)
AND ATTRIBUTE_TYPE = G_QUALIFIER_TYPE; */
l_del_tbl.delete;
l_success_tbl.delete;
-- Delete the no of quals where pl is a qualifier(for price lists only)
OPEN line_level_setup_pl_quals_cur(K.list_header_id,K.list_line_id);
engine_debug('Update #6');
engine_debug('Update #4');
engine_debug('The whole List Line is getting deleted');
engine_debug('Update #5');
engine_debug('Deleted Line Details in Pure Line Grouping Table');
UPDATE qp_npreq_ldets_tmp --upd3
SET PRICING_STATUS_CODE = G_DELETED_GRP,
PRICING_STATUS_TEXT = 'Deleted in pure line grouping'
WHERE line_detail_index = l_del_tbl(i);
UPDATE qp_npreq_line_attrs_tmp
SET PRICING_STATUS_CODE = G_DELETED_GRP,
PRICING_STATUS_TEXT = 'Deleted in pure line grouping'
WHERE line_detail_index = l_del_tbl(i)
AND ATTRIBUTE_TYPE = G_QUALIFIER_TYPE; */
UPDATE qp_npreq_ldets_tmp --upd4
SET PRICING_STATUS_CODE = G_STATUS_NEW
WHERE line_detail_index = l_success_tbl(i);
UPDATE qp_npreq_line_attrs_tmp
SET PRICING_STATUS_CODE = G_STATUS_NEW
WHERE line_detail_index = l_success_tbl(i)
AND ATTRIBUTE_TYPE = G_QUALIFIER_TYPE; */
l_del_tbl.delete;
l_success_tbl.delete;
G_LIST_HEADER_ID_TBL_G.delete;
G_LIST_LINE_ID_TBL_G.delete;
G_LINE_INDEX_TBL_G.delete;
G_NO_OF_PATTS_IN_GRP_TBL_G.delete;
engine_debug('Getting Deleted in Product Grouping');
UPDATE qp_npreq_ldets_tmp --upd5
SET PRICING_STATUS_CODE = G_DELETED_GRP
WHERE PRICING_PHASE_ID = p_pricing_phase_id
AND PRICING_STATUS_CODE = G_STATUS_NEW
AND CREATED_FROM_LIST_HEADER_ID = G_LIST_HEADER_ID_TBL_G(I)
AND CREATED_FROM_LIST_LINE_ID = G_LIST_LINE_ID_TBL_G(I)
AND LINE_INDEX = G_LINE_INDEX_TBL_G(I);
/* UPDATE qp_npreq_ldets_tmp
SET PRICING_STATUS_CODE = G_DELETED_GRP
WHERE CREATED_FROM_LIST_LINE_ID = G_LIST_LINE_ID_TBL_G(I)
AND LINE_INDEX = G_LINE_INDEX_TBL_G(I); */
/* UPDATE qp_npreq_line_attrs_tmp
SET PRICING_STATUS_CODE = G_DELETED_GRP
WHERE LIST_LINE_ID = G_LIST_LINE_ID_TBL_G(I)
AND LINE_INDEX = G_LINE_INDEX_TBL_G(I); */
engine_debug('Getting Deleted in Product Grouping');
UPDATE qp_npreq_ldets_tmp --upd6
SET PRICING_STATUS_CODE = G_DELETED_GRP
WHERE PRICING_PHASE_ID = p_pricing_phase_id
AND PRICING_STATUS_CODE = G_STATUS_NEW
AND CREATED_FROM_LIST_HEADER_ID = G_LIST_HEADER_ID_TBL_G(I)
AND CREATED_FROM_LIST_LINE_ID = G_LIST_LINE_ID_TBL_G(I)
AND LINE_INDEX = G_LINE_INDEX_TBL_G(I);
/* UPDATE qp_npreq_ldets_tmp
SET PRICING_STATUS_CODE = G_DELETED_GRP
WHERE CREATED_FROM_LIST_LINE_ID = G_LIST_LINE_ID_TBL_G(I)
AND LINE_INDEX = G_LINE_INDEX_TBL_G(I); */
/* UPDATE qp_npreq_line_attrs_tmp
SET PRICING_STATUS_CODE = G_DELETED_GRP
WHERE LIST_LINE_ID = G_LIST_LINE_ID_TBL_G(I)
AND LINE_INDEX = G_LINE_INDEX_TBL_G(I); */
/* UPDATE qp_npreq_line_attrs_tmp
SET PRICING_STATUS_CODE = G_STATUS_NEW
WHERE PRICING_STATUS_CODE = G_STATUS_NEW
AND LINE_INDEX = nvl(p_line_index,LINE_INDEX);
UPDATE qp_npreq_ldets_tmp a
SET PRICING_STATUS_CODE = G_STATUS_NEW
WHERE PRICING_PHASE_ID = p_pricing_phase_id
AND PRICING_STATUS_CODE = G_STATUS_NEW
AND LINE_INDEX = nvl(p_line_index,LINE_INDEX); */
| PROCEDURE Update_Price_List_Information
+--------------------------------------------------------
*/
PROCEDURE Update_Price_List_Information(
p_freeze_override_flag IN VARCHAR2,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2) AS
l_routine VARCHAR2(240):='QP_PREQ_GRP.Update_Price_List_Information';
engine_debug ('In Procedure Update_Price_List_Information...');
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_sel1,qp_npreq_line_attrs_tmp_N1,LINE_INDEX,1
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_sel1,qp_npreq_line_attrs_tmp_N1,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_sel1,qp_npreq_line_attrs_tmp_N1,PRICING_STATUS_CODE,3
*/
IF (G_PRICE_PHASE_FLAG = TRUE ) THEN -- Ravi
UPDATE /*+ dynamic_sampling(1) */ qp_npreq_lines_tmp a
SET processed_code = G_NO_LIST_PASSED,
validated_flag = G_NO
WHERE not exists (SELECT 'x'
FROM qp_npreq_line_attrs_tmp b
WHERE a.line_index = b.line_index
AND b.context in (G_LIST_HEADER_CONTEXT,G_LIST_LINE_CONTEXT)
AND b.attribute_type = G_QUALIFIER_TYPE
AND b.pricing_status_code = G_STATUS_UNCHANGED)
AND nvl(PROCESSED_CODE,'X') <> G_BY_ENGINE
AND (price_flag = G_YES OR --[julin/4708044]
(price_flag = G_PHASE AND p_freeze_override_flag = G_YES));
engine_debug ('after update1...');
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_upd3,qp_npreq_lines_tmp_N3,VALIDATED_FLAG,1
*/
/*
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_sel2,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_sel2,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_sel2,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_sel2,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_sel2,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
*/
IF (G_PRICE_PHASE_FLAG = TRUE ) THEN -- Ravi
--[julin/pricebook] added hint
--[julin/5223502] price_list_header_id directly passed in via lines_tmp has precedence over sourced value
UPDATE /*+ dynamic_sampling(1) */ qp_npreq_lines_tmp a
SET (price_list_header_id,validated_flag) =
(SELECT /*+ index(b QP_PREQ_LINE_ATTRS_TMP_N2) */ distinct
CASE WHEN (a.PRICE_LIST_HEADER_ID < 0) THEN qp_number.canonical_to_number(value_from)
ELSE a.PRICE_LIST_HEADER_ID
END price_list_header_id,
validated_flag
FROM qp_npreq_line_attrs_tmp b
WHERE a.line_index = b.line_index
AND context = G_LIST_HEADER_CONTEXT
AND attribute = G_PRICELIST_ATTRIBUTE
AND attribute_type = G_QUALIFIER_TYPE
AND pricing_status_code = G_STATUS_UNCHANGED); -- bug 3668963 - commented following 2 lines
engine_debug ('after update2');
engine_debug('Call from Public API , Update_Price_List_Information');
engine_debug('Trying to Update Unit Price To Null');
UPDATE qp_npreq_lines_tmp a
SET unit_price = NULL
WHERE (price_flag = G_YES
OR
(price_flag = G_PHASE
AND p_freeze_override_flag = G_YES))
AND line_type_code <> G_ORDER_LEVEL
AND list_price_override_flag = 'N';
engine_debug ('after update3');
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_upd4,qp_npreq_lines_tmp_N3,VALIDATED_FLAG,1
*/
/*
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_sel3,QP_QUALIFIERS_N7,QUALIFIER_CONTEXT,1
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_sel3,QP_QUALIFIERS_N7,QUALIFIER_ATTRIBUTE,2
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_sel3,QP_QUALIFIERS_N7,LIST_HEADER_ID,3
*/
IF (G_PRICE_PHASE_FLAG = TRUE) THEN -- Ravi,
UPDATE qp_npreq_lines_tmp a
SET qualifiers_exist_flag = G_YES
WHERE price_list_header_id IS NOT NULL
AND validated_flag = G_NO
AND EXISTS (SELECT 'x'
FROM QP_QUALIFIERS
WHERE LIST_HEADER_ID = a.PRICE_LIST_HEADER_ID
AND QUALIFIER_CONTEXT <> 'MODLIST'
AND QUALIFIER_ATTRIBUTE <> 'QUALIFIER_ATTRIBUTE4'
AND ROWNUM = 1);
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_sel4,QP_PRICING_ATTRIBUTES_N6,LIST_HEADER_ID,1
INDX,QP_PREQ_GRP.update_price_list_information.update_price_list_information_sel4,QP_PRICING_ATTRIBUTES_N6,QUALIFICATION_IND,2
*/
UPDATE qp_npreq_lines_tmp a
SET pricing_attrs_exist_flag = G_YES
WHERE price_list_header_id IS NOT NULL
AND EXISTS
(SELECT 'x'
FROM QP_PRICING_ATTRIBUTES
WHERE LIST_HEADER_ID = a.PRICE_LIST_HEADER_ID
AND QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_PRIC_IND)
AND ROWNUM = 1) ;
engine_debug ('after update4');
x_status_text:= 'QP_PREQ_GRP.Update_Price_List_Information: '||SQLERRM;
END Update_Price_List_Information;
| PROCEDURE Update_Sec_Price_List_Info
+--------------------------------------------------------
*/
PROCEDURE Update_Sec_Price_List_Info( x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2) AS
l_routine VARCHAR2(240):='QP_PREQ_GRP.Update_Sec_Price_List_Info';
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_upd1,-No Index Used-,NA,NA
*/
/*
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel1,QP_QUALIFIERS_N1,LIST_HEADER_ID,1
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel1,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel1,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel1,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel1,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6
*/
UPDATE qp_npreq_lines_tmp c
SET primary_qualifiers_match_flag = 'Y'
WHERE EXISTS(
SELECT 'x'
FROM QP_QUALIFIERS a,
qp_npreq_line_attrs_tmp b
WHERE b.CONTEXT = a.QUALIFIER_CONTEXT
AND b.ATTRIBUTE = a.QUALIFIER_ATTRIBUTE
AND b.VALUE_FROM = a.QUALIFIER_ATTR_VALUE
AND b.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND a.COMPARISON_OPERATOR_CODE = '='
AND b.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND trunc(c.pricing_effective_date) BETWEEN trunc(NVL(a.START_DATE_ACTIVE, c.pricing_effective_date))
AND trunc(NVL(a.END_DATE_ACTIVE,c.pricing_effective_date))
AND a.LIST_HEADER_ID = c.PRICE_LIST_HEADER_ID
AND a.ACTIVE_FLAG = G_YES
AND b.LINE_INDEX = c.LINE_INDEX
AND c.VALIDATED_FLAG = G_NO)
AND c.VALIDATED_FLAG = G_NO;
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_upd2,-No Index Used-,NA,NA
*/
/*
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel2,QP_QUALIFIERS_N1,LIST_HEADER_ID,1
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel2,QP_QUALIFIERS_N1,COMPARISON_OPERATOR_CODE,4
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel2,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel2,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel2,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel2,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel2,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
*/
UPDATE qp_npreq_lines_tmp c
SET primary_qualifiers_match_flag = 'Y'
WHERE EXISTS(
SELECT 'x'
FROM qp_npreq_line_attrs_tmp b ,QP_QUALIFIERS a
WHERE b.CONTEXT = a.QUALIFIER_CONTEXT
AND b.ATTRIBUTE = a.QUALIFIER_ATTRIBUTE
AND a.COMPARISON_OPERATOR_CODE = 'BETWEEN'
AND b.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND b.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND trunc(c.pricing_effective_date) BETWEEN NVL(a.START_DATE_ACTIVE, trunc(c.pricing_effective_date))
AND NVL(a.END_DATE_ACTIVE,trunc(c.pricing_effective_date))
AND a.LIST_HEADER_ID = c.PRICE_LIST_HEADER_ID
AND a.ACTIVE_FLAG = G_YES
AND b.LINE_INDEX = c.LINE_INDEX
AND c.VALIDATED_FLAG = G_NO)
AND c.VALIDATED_FLAG = G_NO ;
UPDATE qp_npreq_lines_tmp c
SET primary_qualifiers_match_flag = 'Y'
WHERE EXISTS(
SELECT 'x'
FROM qp_npreq_line_attrs_tmp b ,QP_QUALIFIERS a
WHERE b.CONTEXT = a.QUALIFIER_CONTEXT
AND b.ATTRIBUTE = a.QUALIFIER_ATTRIBUTE
AND b.VALUE_FROM <> a.QUALIFIER_ATTR_VALUE
AND a.COMPARISON_OPERATOR_CODE = 'NOT ='
AND b.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND b.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND trunc(c.pricing_effective_date) BETWEEN NVL(a.START_DATE_ACTIVE, trunc(c.pricing_effective_date))
AND NVL(a.END_DATE_ACTIVE,trunc(c.pricing_effective_date))
AND a.LIST_HEADER_ID = c.PRICE_LIST_HEADER_ID
AND a.ACTIVE_FLAG = G_YES
AND b.LINE_INDEX = c.LINE_INDEX
AND c.VALIDATED_FLAG = G_NO)
AND c.VALIDATED_FLAG = G_NO ;
END Update_Sec_Price_List_Info;
SELECT /*+ ORDERED USE_NL(QPQ QPLAT_PROD QPA QPL QPH) INDEX(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n2) l_sec_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
QPH.ROUNDING_FACTOR,
QPLAT_PROD.LINE_DETAIL_INDEX,
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
NULL PRODUCT_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_CONTEXT,
NULL PRICING_ATTRIBUTE,
NULL PRICING_ATTR_VALUE_FROM,
NULL PRICING_SETUP_VALUE_FROM,
NULL PRICING_SETUP_VALUE_TO,
NULL PRICING_ATTRIBUTE_LEVEL,
NULL PRICING_ATTRIBUTE_TYPE,
NULL PRICING_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_DATATYPE,
NULL QUALIFIER_ATTRIBUTE_CONTEXT,
NULL QUALIFIER_ATTRIBUTE,
NULL QUALIFIER_ATTR_VALUE_FROM,
NULL QUALIFIER_PRICING_ATTR_FLAG,
to_number(NULL) QUALIFIER_GROUPING_NO,
NULL QUALIFIER_DATATYPE,
NULL SETUP_VALUE_FROM,
NULL SETUP_VALUE_TO,
NULL QUALIFIER_OPERATOR_TYPE,
QPQ.QUALIFIER_PRECEDENCE QUALIFIER_PRECEDENCE
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,NULL QUALIFIER_TYPE -- 3863226
,QPLAT_PROD.DERIVED_QUALIFIER_FLAG -- Added for TCA
FROM
qp_npreq_lines_tmp QPLINES,
QP_QUALIFIERS QPQ,
qp_npreq_line_attrs_tmp QPLAT_PROD,
QP_PRICING_ATTRIBUTES QPA,
QP_LIST_LINES QPL,
QP_LIST_HEADERS_B QPH,
--QP_PRICE_REQ_SOURCES QPRS
QP_PRICE_REQ_SOURCES_V QPRS /*yangli*/
WHERE QPQ.QUALIFIER_CONTEXT = G_LIST_HEADER_CONTEXT
AND QPQ.QUALIFIER_ATTRIBUTE = G_PRICELIST_ATTRIBUTE
AND QPQ.QUALIFIER_ATTR_VALUE = to_char(QPLINES.PRICE_LIST_HEADER_ID)
AND QPQ.COMPARISON_OPERATOR_CODE = '='
AND QPQ.LIST_TYPE_CODE = 'PRL' --3965947
AND QPQ.LIST_HEADER_ID = QPA.LIST_HEADER_ID
AND QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND IN ( QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_IND)
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND (QPLINES.VALIDATED_FLAG = G_YES
OR
((QPLINES.VALIDATED_FLAG = G_NO AND
QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES)
OR
QPLINES.QUALIFIERS_EXIST_FLAG = G_NO) AND
(G_QUALIFY_SECONDARY = G_NO
OR
QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_IND
))
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPL.LIST_HEADER_ID = QPH.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPQ.ACTIVE_FLAG = G_YES
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(QPQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
UNION ALL
SELECT /*+ ORDERED USE_NL(QPQ QPLAT_PROD QPA QPLAT_PRIC QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n2) index(qplat_pric qp_preq_line_attrs_tmp_n2) l_sec_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
QPH.ROUNDING_FACTOR,
QPLAT_PROD.LINE_DETAIL_INDEX,
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
NULL PRODUCT_OPERATOR_TYPE,
QPLAT_PRIC.CONTEXT PRICING_ATTRIBUTE_CONTEXT,
QPLAT_PRIC.ATTRIBUTE PRICING_ATTRIBUTE,
QPLAT_PRIC.VALUE_FROM PRICING_ATTR_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_FROM PRICING_SETUP_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_TO PRICING_SETUP_VALUE_TO,
QPLAT_PRIC.ATTRIBUTE_LEVEL PRICING_ATTRIBUTE_LEVEL,
QPLAT_PRIC.ATTRIBUTE_TYPE PRICING_ATTRIBUTE_TYPE,
QPA.COMPARISON_OPERATOR_CODE PRICING_OPERATOR_TYPE,
QPA.PRICING_ATTRIBUTE_DATATYPE PRICING_ATTRIBUTE_DATATYPE,
NULL QUALIFIER_ATTRIBUTE_CONTEXT,
NULL QUALIFIER_ATTRIBUTE,
NULL QUALIFIER_ATTR_VALUE_FROM,
NULL QUALIFIER_PRICING_ATTR_FLAG,
to_number(NULL) QUALIFIER_GROUPING_NO,
NULL QUALIFIER_DATATYPE,
NULL SETUP_VALUE_FROM,
NULL SETUP_VALUE_TO,
NULL QUALIFIER_OPERATOR_TYPE,
QPQ.QUALIFIER_PRECEDENCE QUALIFIER_PRECEDENCE
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,NULL QUALIFIER_TYPE -- 3863226
,QPLAT_PRIC.DERIVED_QUALIFIER_FLAG -- Added for TCA
FROM
qp_npreq_lines_tmp qplines,
QP_QUALIFIERS qpq,
qp_npreq_line_attrs_tmp qplat_prod,
QP_PRICING_ATTRIBUTES qpa,
qp_npreq_line_attrs_tmp qplat_pric,
QP_LIST_LINES qpl,
QP_LIST_HEADERS_B qph,
--QP_PRICE_REQ_SOURCES qprs
QP_PRICE_REQ_SOURCES_V qprs /* yangli */
WHERE QPQ.QUALIFIER_CONTEXT = G_LIST_HEADER_CONTEXT
AND QPQ.QUALIFIER_ATTRIBUTE = G_PRICELIST_ATTRIBUTE
AND QPQ.QUALIFIER_ATTR_VALUE = to_char(QPLINES.PRICE_LIST_HEADER_ID)
AND QPQ.COMPARISON_OPERATOR_CODE = '='
AND QPQ.LIST_TYPE_CODE = 'PRL' --3965947
AND QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_PRIC_IND)
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND ((QPLINES.VALIDATED_FLAG = G_YES
OR
(QPLINES.VALIDATED_FLAG = G_NO AND
QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES)
OR
QPLINES.QUALIFIERS_EXIST_FLAG = G_NO) AND
(G_QUALIFY_SECONDARY = G_NO
OR
QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_IND
))
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
AND QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
AND (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
OR
QPA.COMPARISON_OPERATOR_CODE IN ('NOT =', G_OPERATOR_BETWEEN))
AND QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
AND QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.LINE_INDEX = QPLAT_PROD.LINE_INDEX
AND QPA.LIST_HEADER_ID = QPQ.LIST_HEADER_ID
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPQ.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
UNION ALL
SELECT /*+ ORDERED USE_NL(QPQ QPLAT_PROD QPA QPL QPH) INDEX(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n2) l_sec_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
QPH.ROUNDING_FACTOR,
QPLAT_PROD.LINE_DETAIL_INDEX,
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
NULL PRODUCT_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_CONTEXT,
NULL PRICING_ATTRIBUTE,
NULL PRICING_ATTR_VALUE_FROM,
NULL PRICING_SETUP_VALUE_FROM,
NULL PRICING_SETUP_VALUE_TO,
NULL PRICING_ATTRIBUTE_LEVEL,
NULL PRICING_ATTRIBUTE_TYPE,
NULL PRICING_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_DATATYPE,
QPLAT_Q.CONTEXT QUALIFIER_ATTRIBUTE_CONTEXT,
QPLAT_Q.ATTRIBUTE QUALIFIER_ATTRIBUTE,
QPLAT_Q.VALUE_FROM QUALIFIER_ATTR_VALUE_FROM,
QPLAT_Q.PRICING_ATTR_FLAG QUALIFIER_PRICING_ATTR_FLAG,
QPSQ.QUALIFIER_GROUPING_NO QUALIFIER_GROUPING_NO,
QPSQ.QUALIFIER_DATATYPE QUALIFIER_DATATYPE,
QPSQ.QUALIFIER_ATTR_VALUE SETUP_VALUE_FROM,
QPSQ.QUALIFIER_ATTR_VALUE_TO SETUP_VALUE_TO,
QPSQ.COMPARISON_OPERATOR_CODE QUALIFIER_OPERATOR_TYPE,
QPQ.QUALIFIER_PRECEDENCE QUALIFIER_PRECEDENCE
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,DECODE(QPQ.list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE -- 3863226
,QPLAT_Q.DERIVED_QUALIFIER_FLAG -- Added for TCA
FROM
qp_npreq_lines_tmp QPLINES,
QP_QUALIFIERS QPQ,
QP_QUALIFIERS QPSQ,
qp_npreq_line_attrs_tmp QPLAT_PROD,
qp_npreq_line_attrs_tmp QPLAT_Q,
QP_PRICING_ATTRIBUTES QPA,
QP_LIST_LINES QPL,
QP_LIST_HEADERS_B QPH,
--QP_PRICE_REQ_SOURCES QPRS
QP_PRICE_REQ_SOURCES_V QPRS /*yangli*/
WHERE QPQ.QUALIFIER_CONTEXT = G_LIST_HEADER_CONTEXT
AND QPQ.QUALIFIER_ATTRIBUTE = G_PRICELIST_ATTRIBUTE
AND QPQ.QUALIFIER_ATTR_VALUE = to_char(QPLINES.PRICE_LIST_HEADER_ID)
AND QPQ.COMPARISON_OPERATOR_CODE = '='
AND QPQ.LIST_TYPE_CODE = 'PRL' --3965947
AND QPQ.LIST_HEADER_ID = QPA.LIST_HEADER_ID
AND QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_NO
AND (QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES
OR
QPLINES.QUALIFIERS_EXIST_FLAG = G_NO
)
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPL.LIST_HEADER_ID = QPH.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPQ.ACTIVE_FLAG = G_YES
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(QPQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
-- 3594459, context and attribute OR'd together
AND (QPSQ.QUALIFIER_CONTEXT <> G_LIST_HEADER_CONTEXT
OR QPSQ.QUALIFIER_ATTRIBUTE <> G_PRICELIST_ATTRIBUTE)
AND QPLAT_Q.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND QPLAT_Q.CONTEXT = QPSQ.QUALIFIER_CONTEXT
AND QPLAT_Q.ATTRIBUTE = QPSQ.QUALIFIER_ATTRIBUTE
AND QPSQ.LIST_HEADER_ID = QPQ.LIST_HEADER_ID
AND QPSQ.ACTIVE_FLAG = G_YES
AND ((QPLAT_Q.VALUE_FROM = QPSQ.QUALIFIER_ATTR_VALUE --bug#1761272 Multiple NOT =
AND QPSQ.COMPARISON_OPERATOR_CODE = '=')
OR (QPLAT_Q.VALUE_FROM <> QPSQ.QUALIFIER_ATTR_VALUE
AND QPSQ.COMPARISON_OPERATOR_CODE = 'NOT =')
OR
QPSQ.COMPARISON_OPERATOR_CODE = G_OPERATOR_BETWEEN)
AND QPLAT_Q.LINE_INDEX = QPLINES.LINE_INDEX
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(QPSQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPSQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLAT_PROD.LINE_INDEX = QPLAT_Q.LINE_INDEX
AND QPLAT_Q. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND G_QUALIFY_SECONDARY = G_YES
AND ((nvl(QPLAT_Q.DERIVED_QUALIFIER_FLAG,'N')='N')
OR (QPLAT_Q.DERIVED_QUALIFIER_FLAG = 'Y' AND QPSQ.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPQ QPLAT_PROD QPA QPLAT_PRIC QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n2) index(qplat_pric qp_preq_line_attrs_tmp_n2) l_sec_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
QPH.ROUNDING_FACTOR,
QPLAT_PROD.LINE_DETAIL_INDEX,
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
NULL PRODUCT_OPERATOR_TYPE,
QPLAT_PRIC.CONTEXT PRICING_ATTRIBUTE_CONTEXT,
QPLAT_PRIC.ATTRIBUTE PRICING_ATTRIBUTE,
QPLAT_PRIC.VALUE_FROM PRICING_ATTR_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_FROM PRICING_SETUP_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_TO PRICING_SETUP_VALUE_TO,
QPLAT_PRIC.ATTRIBUTE_LEVEL PRICING_ATTRIBUTE_LEVEL,
QPLAT_PRIC.ATTRIBUTE_TYPE PRICING_ATTRIBUTE_TYPE,
QPA.COMPARISON_OPERATOR_CODE PRICING_OPERATOR_TYPE,
QPA.PRICING_ATTRIBUTE_DATATYPE PRICING_ATTRIBUTE_DATATYPE,
QPLAT_Q.CONTEXT QUALIFIER_ATTRIBUTE_CONTEXT,
QPLAT_Q.ATTRIBUTE QUALIFIER_ATTRIBUTE,
QPLAT_Q.VALUE_FROM QUALIFIER_ATTR_VALUE_FROM,
QPLAT_Q.PRICING_ATTR_FLAG QUALIFIER_PRICING_ATTR_FLAG,
QPSQ.QUALIFIER_GROUPING_NO QUALIFIER_GROUPING_NO,
QPSQ.QUALIFIER_DATATYPE QUALIFIER_DATATYPE,
QPSQ.QUALIFIER_ATTR_VALUE SETUP_VALUE_FROM,
QPSQ.QUALIFIER_ATTR_VALUE_TO SETUP_VALUE_TO,
QPSQ.COMPARISON_OPERATOR_CODE QUALIFIER_OPERATOR_TYPE,
QPQ.QUALIFIER_PRECEDENCE QUALIFIER_PRECEDENCE
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,DECODE(QPQ.list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE -- 3863226
,QPLAT_Q.DERIVED_QUALIFIER_FLAG -- Added for TCA
FROM
qp_npreq_lines_tmp qplines,
QP_QUALIFIERS qpq,
QP_QUALIFIERS qpsq,
qp_npreq_line_attrs_tmp qplat_prod,
QP_PRICING_ATTRIBUTES qpa,
qp_npreq_line_attrs_tmp qplat_pric,
qp_npreq_line_attrs_tmp qplat_q,
QP_LIST_LINES qpl,
QP_LIST_HEADERS_B qph,
--QP_PRICE_REQ_SOURCES qprs
QP_PRICE_REQ_SOURCES_V qprs /* yangli */
WHERE QPQ.QUALIFIER_CONTEXT = G_LIST_HEADER_CONTEXT
AND QPQ.QUALIFIER_ATTRIBUTE = G_PRICELIST_ATTRIBUTE
AND QPQ.QUALIFIER_ATTR_VALUE = to_char(QPLINES.PRICE_LIST_HEADER_ID)
AND QPQ.COMPARISON_OPERATOR_CODE = '='
AND QPQ.LIST_TYPE_CODE = 'PRL' --3965947
AND QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_NO
AND (QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES
OR
QPLINES.QUALIFIERS_EXIST_FLAG = G_NO
)
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
AND QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
AND (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
OR
QPA.COMPARISON_OPERATOR_CODE IN ('NOT =', G_OPERATOR_BETWEEN))
AND QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
AND QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.LINE_INDEX = QPLAT_PROD.LINE_INDEX
AND QPA.LIST_HEADER_ID = QPQ.LIST_HEADER_ID
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPQ.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_Q.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
-- 3594459, context and attribute OR'd together
AND (QPSQ.QUALIFIER_CONTEXT <> G_LIST_HEADER_CONTEXT
OR QPSQ.QUALIFIER_ATTRIBUTE <> G_PRICELIST_ATTRIBUTE)
AND QPLAT_Q.CONTEXT = QPSQ.QUALIFIER_CONTEXT
AND QPLAT_Q.ATTRIBUTE = QPSQ.QUALIFIER_ATTRIBUTE
AND QPSQ.LIST_HEADER_ID = QPQ.LIST_HEADER_ID
AND QPSQ.ACTIVE_FLAG = G_YES
AND ((QPLAT_Q.VALUE_FROM = QPSQ.QUALIFIER_ATTR_VALUE --bug#1761272 Multiple NOT =
AND QPSQ.COMPARISON_OPERATOR_CODE = '=')
OR (QPLAT_Q.VALUE_FROM <> QPSQ.QUALIFIER_ATTR_VALUE
AND QPSQ.COMPARISON_OPERATOR_CODE = 'NOT =')
OR
QPSQ.COMPARISON_OPERATOR_CODE = G_OPERATOR_BETWEEN)
AND QPLAT_Q.LINE_INDEX = QPLINES.LINE_INDEX
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(QPSQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPSQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLAT_PROD.LINE_INDEX = QPLAT_Q.LINE_INDEX
AND QPLAT_Q. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND G_QUALIFY_SECONDARY = G_YES
AND ((nvl(QPLAT_Q.DERIVED_QUALIFIER_FLAG,'N')='N')
OR (QPLAT_Q.DERIVED_QUALIFIER_FLAG = 'Y' AND QPSQ.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
ORDER BY 1,2;
SELECT /*+ ORDERED USE_NL(QPQ QPLAT_PROD QPA QPL QPH) INDEX(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n7) l_sec_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
/* vivek QPH.ROUNDING_FACTOR, */
QCDT.ROUNDING_FACTOR, /* vivek */
QPLAT_PROD.LINE_DETAIL_INDEX,
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
NULL PRODUCT_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_CONTEXT,
NULL PRICING_ATTRIBUTE,
NULL PRICING_ATTR_VALUE_FROM,
NULL PRICING_SETUP_VALUE_FROM,
NULL PRICING_SETUP_VALUE_TO,
NULL PRICING_ATTRIBUTE_LEVEL,
NULL PRICING_ATTRIBUTE_TYPE,
NULL PRICING_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_DATATYPE,
NULL QUALIFIER_ATTRIBUTE_CONTEXT,
NULL QUALIFIER_ATTRIBUTE,
NULL QUALIFIER_ATTR_VALUE_FROM,
NULL QUALIFIER_PRICING_ATTR_FLAG,
to_number(NULL) QUALIFIER_GROUPING_NO,
NULL QUALIFIER_DATATYPE,
NULL SETUP_VALUE_FROM,
NULL SETUP_VALUE_TO,
NULL QUALIFIER_OPERATOR_TYPE,
QPQ.QUALIFIER_PRECEDENCE QUALIFIER_PRECEDENCE,
QCDT.CURRENCY_DETAIL_ID, /* sunilpandey */
QCDT.CURRENCY_HEADER_ID, /* vivek */
QCDT.SELLING_ROUNDING_FACTOR, /* vivek */
QPLINES.CURRENCY_CODE ORDER_CURRENCY, /* vivek */
QPLINES.PRICING_EFFECTIVE_DATE, /* vivek */
QPH.CURRENCY_CODE BASE_CURRENCY_CODE /* vivek */
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,NULL QUALIFIER_TYPE -- 3863226
,QPLAT_PROD.DERIVED_QUALIFIER_FLAG -- Added for TCA
FROM
qp_npreq_lines_tmp QPLINES,
QP_QUALIFIERS QPQ,
qp_npreq_line_attrs_tmp QPLAT_PROD,
QP_PRICING_ATTRIBUTES QPA,
QP_LIST_LINES QPL,
QP_LIST_HEADERS_B QPH,
--QP_PRICE_REQ_SOURCES QPRS,
QP_PRICE_REQ_SOURCES_V QPRS, /* yangli */
QP_CURRENCY_DETAILS QCDT /* Vivek */
WHERE QPQ.QUALIFIER_CONTEXT = G_LIST_HEADER_CONTEXT
AND QPQ.QUALIFIER_ATTRIBUTE = G_PRICELIST_ATTRIBUTE
AND QPQ.QUALIFIER_ATTR_VALUE = to_char(QPLINES.PRICE_LIST_HEADER_ID)
AND QPQ.COMPARISON_OPERATOR_CODE = '='
AND QPQ.LIST_TYPE_CODE = 'PRL' --3965947
AND QPQ.LIST_HEADER_ID = QPA.LIST_HEADER_ID
AND QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND IN ( QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_IND)
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND ((QPLINES.VALIDATED_FLAG = G_YES
OR
(QPLINES.VALIDATED_FLAG = G_NO AND
QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES)
OR
QPLINES.QUALIFIERS_EXIST_FLAG = G_NO) AND
(G_QUALIFY_SECONDARY = G_NO
OR
QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_IND
))
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPL.LIST_HEADER_ID = QPH.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
/* Vivek AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE */
AND QPH.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID /* Vivek */
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND ( /* Vivek */
(qcdt.curr_attribute_context is null /* Vivek */
and not exists /* Vivek */
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1 /* Vivek */
where qcdt1.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt1.curr_attribute_context = pa_tmp.context /* Vivek */
and qcdt1.curr_attribute = pa_tmp.attribute /* Vivek */
and qcdt1.curr_attribute_value = pa_tmp.value_from /* Vivek */
and qcdt1.curr_attribute_type = pa_tmp.ATTRIBUTE_TYPE /* Vivek */
and qcdt1.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt1.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT1.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT1.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
) /* Vivek */
) /* Vivek */
OR /* Vivek */
(qcdt.curr_attribute_context is not null /* Vivek */
and qcdt.currency_detail_id = /* Vivek */
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3 /* Vivek */
where qcdt3.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt3.currency_header_id = qcdt.currency_header_id /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT3.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT3.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
and qcdt3.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2 /* Vivek */
where qcdt2.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt2.curr_attribute_context = pa_tmp1.context /* Vivek */
and qcdt2.curr_attribute = pa_tmp1.attribute /* Vivek */
and qcdt2.curr_attribute_value = pa_tmp1.value_from /* Vivek */
and qcdt2.curr_attribute_type = pa_tmp1.ATTRIBUTE_TYPE /* Vivek */
and qcdt2.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt2.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp1.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT2.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT2.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
)) /* Vivek */
) /* Vivek */
) /* Vivek */
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPQ.ACTIVE_FLAG = G_YES
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(QPQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
UNION ALL
SELECT /*+ ORDERED USE_NL(QPQ QPLAT_PROD QPA QPLAT_PRIC QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n7) index(qplat_pric qp_preq_line_attrs_tmp_n2) l_sec_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
/* vivek QPH.ROUNDING_FACTOR, */
QCDT.ROUNDING_FACTOR, /* vivek */
QPLAT_PROD.LINE_DETAIL_INDEX,
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
NULL PRODUCT_OPERATOR_TYPE,
QPLAT_PRIC.CONTEXT PRICING_ATTRIBUTE_CONTEXT,
QPLAT_PRIC.ATTRIBUTE PRICING_ATTRIBUTE,
QPLAT_PRIC.VALUE_FROM PRICING_ATTR_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_FROM PRICING_SETUP_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_TO PRICING_SETUP_VALUE_TO,
QPLAT_PRIC.ATTRIBUTE_LEVEL PRICING_ATTRIBUTE_LEVEL,
QPLAT_PRIC.ATTRIBUTE_TYPE PRICING_ATTRIBUTE_TYPE,
QPA.COMPARISON_OPERATOR_CODE PRICING_OPERATOR_TYPE,
QPA.PRICING_ATTRIBUTE_DATATYPE PRICING_ATTRIBUTE_DATATYPE,
NULL QUALIFIER_ATTRIBUTE_CONTEXT,
NULL QUALIFIER_ATTRIBUTE,
NULL QUALIFIER_ATTR_VALUE_FROM,
NULL QUALIFIER_PRICING_ATTR_FLAG,
to_number(NULL) QUALIFIER_GROUPING_NO,
NULL QUALIFIER_DATATYPE,
NULL SETUP_VALUE_FROM,
NULL SETUP_VALUE_TO,
NULL QUALIFIER_OPERATOR_TYPE,
QPQ.QUALIFIER_PRECEDENCE QUALIFIER_PRECEDENCE,
QCDT.CURRENCY_DETAIL_ID, /* sunilpandey */
QCDT.CURRENCY_HEADER_ID, /* vivek */
QCDT.SELLING_ROUNDING_FACTOR, /* vivek */
QPLINES.CURRENCY_CODE ORDER_CURRENCY, /* vivek */
QPLINES.PRICING_EFFECTIVE_DATE, /* vivek */
QPH.CURRENCY_CODE BASE_CURRENCY_CODE /* vivek */
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,NULL QUALIFIER_TYPE -- 3863226
,QPLAT_PRIC.DERIVED_QUALIFIER_FLAG -- Added for TCA
FROM
qp_npreq_lines_tmp qplines,
QP_QUALIFIERS qpq,
qp_npreq_line_attrs_tmp qplat_prod,
QP_PRICING_ATTRIBUTES qpa,
qp_npreq_line_attrs_tmp qplat_pric,
QP_LIST_LINES qpl,
QP_LIST_HEADERS_B qph,
--QP_PRICE_REQ_SOURCES qprs,
QP_PRICE_REQ_SOURCES_V qprs, /* yangli */
QP_CURRENCY_DETAILS QCDT /* Vivek */
WHERE QPQ.QUALIFIER_CONTEXT = G_LIST_HEADER_CONTEXT
AND QPQ.QUALIFIER_ATTRIBUTE = G_PRICELIST_ATTRIBUTE
AND QPQ.QUALIFIER_ATTR_VALUE = to_char(QPLINES.PRICE_LIST_HEADER_ID)
AND QPQ.COMPARISON_OPERATOR_CODE = '='
AND QPQ.LIST_TYPE_CODE = 'PRL' --3965947
AND QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_PRIC_IND)
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND ((QPLINES.VALIDATED_FLAG = G_YES
OR
(QPLINES.VALIDATED_FLAG = G_NO AND
QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES)
OR
QPLINES.QUALIFIERS_EXIST_FLAG = G_NO) AND
(G_QUALIFY_SECONDARY = G_NO
OR
QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_IND
))
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
AND QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
AND (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
OR
QPA.COMPARISON_OPERATOR_CODE IN ('NOT =', G_OPERATOR_BETWEEN))
AND QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
AND QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.LINE_INDEX = QPLAT_PROD.LINE_INDEX
AND QPA.LIST_HEADER_ID = QPQ.LIST_HEADER_ID
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
/* Vivek AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE */
AND QPH.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID /* Vivek */
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND ( /* Vivek */
(qcdt.curr_attribute_context is null /* Vivek */
and not exists /* Vivek */
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1 /* Vivek */
where qcdt1.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt1.curr_attribute_context = pa_tmp.context /* Vivek */
and qcdt1.curr_attribute = pa_tmp.attribute /* Vivek */
and qcdt1.curr_attribute_value = pa_tmp.value_from /* Vivek */
and qcdt1.curr_attribute_type = pa_tmp.ATTRIBUTE_TYPE /* Vivek */
and qcdt1.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt1.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT1.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT1.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
) /* Vivek */
) /* Vivek */
OR /* Vivek */
(qcdt.curr_attribute_context is not null /* Vivek */
and qcdt.currency_detail_id = /* Vivek */
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3 /* Vivek */
where qcdt3.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt3.currency_header_id = qcdt.currency_header_id /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT3.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT3.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
and qcdt3.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2 /* Vivek */
where qcdt2.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt2.curr_attribute_context = pa_tmp1.context /* Vivek */
and qcdt2.curr_attribute = pa_tmp1.attribute /* Vivek */
and qcdt2.curr_attribute_value = pa_tmp1.value_from /* Vivek */
and qcdt2.curr_attribute_type = pa_tmp1.ATTRIBUTE_TYPE /* Vivek */
and qcdt2.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt2.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp1.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT2.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT2.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
)) /* Vivek */
) /* Vivek */
) /* Vivek */
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPQ.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
UNION ALL
SELECT /*+ ORDERED USE_NL(QPQ QPLAT_PROD QPA QPL QPH) INDEX(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n7) l_sec_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
/* vivek QPH.ROUNDING_FACTOR, */
QCDT.ROUNDING_FACTOR, /* vivek */
QPLAT_PROD.LINE_DETAIL_INDEX,
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
NULL PRODUCT_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_CONTEXT,
NULL PRICING_ATTRIBUTE,
NULL PRICING_ATTR_VALUE_FROM,
NULL PRICING_SETUP_VALUE_FROM,
NULL PRICING_SETUP_VALUE_TO,
NULL PRICING_ATTRIBUTE_LEVEL,
NULL PRICING_ATTRIBUTE_TYPE,
NULL PRICING_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_DATATYPE,
QPLAT_Q.CONTEXT QUALIFIER_ATTRIBUTE_CONTEXT,
QPLAT_Q.ATTRIBUTE QUALIFIER_ATTRIBUTE,
QPLAT_Q.VALUE_FROM QUALIFIER_ATTR_VALUE_FROM,
QPLAT_Q.PRICING_ATTR_FLAG QUALIFIER_PRICING_ATTR_FLAG,
QPSQ.QUALIFIER_GROUPING_NO QUALIFIER_GROUPING_NO,
QPSQ.QUALIFIER_DATATYPE QUALIFIER_DATATYPE,
QPSQ.QUALIFIER_ATTR_VALUE SETUP_VALUE_FROM,
QPSQ.QUALIFIER_ATTR_VALUE_TO SETUP_VALUE_TO,
QPSQ.COMPARISON_OPERATOR_CODE QUALIFIER_OPERATOR_TYPE,
QPQ.QUALIFIER_PRECEDENCE QUALIFIER_PRECEDENCE,
QCDT.CURRENCY_DETAIL_ID, /* sunilpandey */
QCDT.CURRENCY_HEADER_ID, /* vivek */
QCDT.SELLING_ROUNDING_FACTOR, /* vivek */
QPLINES.CURRENCY_CODE ORDER_CURRENCY, /* vivek */
QPLINES.PRICING_EFFECTIVE_DATE, /* vivek */
QPH.CURRENCY_CODE BASE_CURRENCY_CODE /* vivek */
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,DECODE(QPQ.list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE --3863226
,QPLAT_Q.DERIVED_QUALIFIER_FLAG -- Added for TCA
FROM
qp_npreq_lines_tmp QPLINES,
QP_QUALIFIERS QPQ,
QP_QUALIFIERS QPSQ,
qp_npreq_line_attrs_tmp QPLAT_PROD,
qp_npreq_line_attrs_tmp QPLAT_Q,
QP_PRICING_ATTRIBUTES QPA,
QP_LIST_LINES QPL,
QP_LIST_HEADERS_B QPH,
--QP_PRICE_REQ_SOURCES QPRS,
QP_PRICE_REQ_SOURCES_V QPRS, /* yangli */
QP_CURRENCY_DETAILS QCDT /* Vivek */
WHERE QPQ.QUALIFIER_CONTEXT = G_LIST_HEADER_CONTEXT
AND QPQ.QUALIFIER_ATTRIBUTE = G_PRICELIST_ATTRIBUTE
AND QPQ.QUALIFIER_ATTR_VALUE = to_char(QPLINES.PRICE_LIST_HEADER_ID)
AND QPQ.COMPARISON_OPERATOR_CODE = '='
AND QPQ.LIST_TYPE_CODE = 'PRL' --3965947
AND QPQ.LIST_HEADER_ID = QPA.LIST_HEADER_ID
AND QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_NO
AND (QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES
OR
QPLINES.QUALIFIERS_EXIST_FLAG = G_NO
)
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPL.LIST_HEADER_ID = QPH.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
/* Vivek AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE */
AND QPH.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID /* Vivek */
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND ( /* Vivek */
(qcdt.curr_attribute_context is null /* Vivek */
and not exists /* Vivek */
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1 /* Vivek */
where qcdt1.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt1.curr_attribute_context = pa_tmp.context /* Vivek */
and qcdt1.curr_attribute = pa_tmp.attribute /* Vivek */
and qcdt1.curr_attribute_value = pa_tmp.value_from /* Vivek */
and qcdt1.curr_attribute_type = pa_tmp.ATTRIBUTE_TYPE /* Vivek */
and qcdt1.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt1.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT1.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT1.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
) /* Vivek */
) /* Vivek */
OR /* Vivek */
(qcdt.curr_attribute_context is not null /* Vivek */
and qcdt.currency_detail_id = /* Vivek */
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3 /* Vivek */
where qcdt3.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt3.currency_header_id = qcdt.currency_header_id /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT3.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT3.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
and qcdt3.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2 /* Vivek */
where qcdt2.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt2.curr_attribute_context = pa_tmp1.context /* Vivek */
and qcdt2.curr_attribute = pa_tmp1.attribute /* Vivek */
and qcdt2.curr_attribute_value = pa_tmp1.value_from /* Vivek */
and qcdt2.curr_attribute_type = pa_tmp1.ATTRIBUTE_TYPE /* Vivek */
and qcdt2.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt2.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp1.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT2.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT2.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
)) /* Vivek */
) /* Vivek */
) /* Vivek */
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPQ.ACTIVE_FLAG = G_YES
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(QPQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND QPLAT_Q.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
-- 3594459, context and attribute OR'd together
AND (QPSQ.QUALIFIER_CONTEXT <> G_LIST_HEADER_CONTEXT
OR QPSQ.QUALIFIER_ATTRIBUTE <> G_PRICELIST_ATTRIBUTE)
AND QPLAT_Q.CONTEXT = QPSQ.QUALIFIER_CONTEXT
AND QPLAT_Q.ATTRIBUTE = QPSQ.QUALIFIER_ATTRIBUTE
AND QPSQ.LIST_HEADER_ID = QPQ.LIST_HEADER_ID
AND QPSQ.ACTIVE_FLAG = G_YES
AND ((QPLAT_Q.VALUE_FROM = QPSQ.QUALIFIER_ATTR_VALUE --bug#1761272 Multiple NOT =
AND QPSQ.COMPARISON_OPERATOR_CODE = '=')
OR (QPLAT_Q.VALUE_FROM <> QPSQ.QUALIFIER_ATTR_VALUE
AND QPSQ.COMPARISON_OPERATOR_CODE = 'NOT =')
OR
QPSQ.COMPARISON_OPERATOR_CODE = G_OPERATOR_BETWEEN)
AND QPLAT_Q.LINE_INDEX = QPLINES.LINE_INDEX
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(QPSQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPSQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLAT_PROD.LINE_INDEX = QPLAT_Q.LINE_INDEX
AND QPLAT_Q.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND G_QUALIFY_SECONDARY = G_YES
AND ((nvl(QPLAT_Q.DERIVED_QUALIFIER_FLAG,'N')='N')
OR (QPLAT_Q.DERIVED_QUALIFIER_FLAG = 'Y' AND QPSQ.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPQ QPLAT_PROD QPA QPLAT_PRIC QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n7) index(qplat_pric qp_preq_line_attrs_tmp_n2) l_sec_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
/* vivek QPH.ROUNDING_FACTOR, */
QCDT.ROUNDING_FACTOR, /* vivek */
QPLAT_PROD.LINE_DETAIL_INDEX,
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
NULL PRODUCT_OPERATOR_TYPE,
QPLAT_PRIC.CONTEXT PRICING_ATTRIBUTE_CONTEXT,
QPLAT_PRIC.ATTRIBUTE PRICING_ATTRIBUTE,
QPLAT_PRIC.VALUE_FROM PRICING_ATTR_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_FROM PRICING_SETUP_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_TO PRICING_SETUP_VALUE_TO,
QPLAT_PRIC.ATTRIBUTE_LEVEL PRICING_ATTRIBUTE_LEVEL,
QPLAT_PRIC.ATTRIBUTE_TYPE PRICING_ATTRIBUTE_TYPE,
QPA.COMPARISON_OPERATOR_CODE PRICING_OPERATOR_TYPE,
QPA.PRICING_ATTRIBUTE_DATATYPE PRICING_ATTRIBUTE_DATATYPE,
QPLAT_Q.CONTEXT QUALIFIER_ATTRIBUTE_CONTEXT,
QPLAT_Q.ATTRIBUTE QUALIFIER_ATTRIBUTE,
QPLAT_Q.VALUE_FROM QUALIFIER_ATTR_VALUE_FROM,
QPLAT_Q.PRICING_ATTR_FLAG QUALIFIER_PRICING_ATTR_FLAG,
QPSQ.QUALIFIER_GROUPING_NO QUALIFIER_GROUPING_NO,
QPSQ.QUALIFIER_DATATYPE QUALIFIER_DATATYPE,
QPSQ.QUALIFIER_ATTR_VALUE SETUP_VALUE_FROM,
QPSQ.QUALIFIER_ATTR_VALUE_TO SETUP_VALUE_TO,
QPSQ.COMPARISON_OPERATOR_CODE QUALIFIER_OPERATOR_TYPE,
QPQ.QUALIFIER_PRECEDENCE QUALIFIER_PRECEDENCE,
QCDT.CURRENCY_DETAIL_ID, /* sunilpandey */
QCDT.CURRENCY_HEADER_ID, /* vivek */
QCDT.SELLING_ROUNDING_FACTOR, /* vivek */
QPLINES.CURRENCY_CODE ORDER_CURRENCY, /* vivek */
QPLINES.PRICING_EFFECTIVE_DATE, /* vivek */
QPH.CURRENCY_CODE BASE_CURRENCY_CODE /* vivek */
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,DECODE(QPQ.list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE --3863226
,QPLAT_Q.DERIVED_QUALIFIER_FLAG -- Added for TCA
FROM
qp_npreq_lines_tmp qplines,
QP_QUALIFIERS qpq,
QP_QUALIFIERS qpsq,
qp_npreq_line_attrs_tmp qplat_prod,
QP_PRICING_ATTRIBUTES qpa,
qp_npreq_line_attrs_tmp qplat_pric,
qp_npreq_line_attrs_tmp qplat_q,
QP_LIST_LINES qpl,
QP_LIST_HEADERS_B qph,
--QP_PRICE_REQ_SOURCES qprs,
QP_PRICE_REQ_SOURCES_V qprs, /* yangli */
QP_CURRENCY_DETAILS QCDT /* Vivek */
WHERE QPQ.QUALIFIER_CONTEXT = G_LIST_HEADER_CONTEXT
AND QPQ.QUALIFIER_ATTRIBUTE = G_PRICELIST_ATTRIBUTE
AND QPQ.QUALIFIER_ATTR_VALUE = to_char(QPLINES.PRICE_LIST_HEADER_ID)
AND QPQ.COMPARISON_OPERATOR_CODE = '='
AND QPQ.LIST_TYPE_CODE = 'PRL' --3965947
AND QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_NO
AND (QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES
OR
QPLINES.QUALIFIERS_EXIST_FLAG = G_NO
)
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
AND QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
AND (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
OR
QPA.COMPARISON_OPERATOR_CODE IN ('NOT =', G_OPERATOR_BETWEEN))
AND QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
AND QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.LINE_INDEX = QPLAT_PROD.LINE_INDEX
AND QPA.LIST_HEADER_ID = QPQ.LIST_HEADER_ID
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
/* Vivek AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE */
AND QPH.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID /* Vivek */
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND ( /* Vivek */
(qcdt.curr_attribute_context is null /* Vivek */
and not exists /* Vivek */
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1 /* Vivek */
where qcdt1.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt1.curr_attribute_context = pa_tmp.context /* Vivek */
and qcdt1.curr_attribute = pa_tmp.attribute /* Vivek */
and qcdt1.curr_attribute_value = pa_tmp.value_from /* Vivek */
and qcdt1.curr_attribute_type = pa_tmp.ATTRIBUTE_TYPE /* Vivek */
and qcdt1.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt1.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT1.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT1.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
) /* Vivek */
) /* Vivek */
OR /* Vivek */
(qcdt.curr_attribute_context is not null /* Vivek */
and qcdt.currency_detail_id = /* Vivek */
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3 /* Vivek */
where qcdt3.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt3.currency_header_id = qcdt.currency_header_id /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT3.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT3.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
and qcdt3.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2 /* Vivek */
where qcdt2.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt2.curr_attribute_context = pa_tmp1.context /* Vivek */
and qcdt2.curr_attribute = pa_tmp1.attribute /* Vivek */
and qcdt2.curr_attribute_value = pa_tmp1.value_from /* Vivek */
and qcdt2.curr_attribute_type = pa_tmp1.ATTRIBUTE_TYPE /* Vivek */
and qcdt2.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt2.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp1.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT2.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT2.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
)) /* Vivek */
) /* Vivek */
) /* Vivek */
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPQ.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND QPLAT_Q.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
-- 3594459, context and attribute OR'd together
AND (QPSQ.QUALIFIER_CONTEXT <> G_LIST_HEADER_CONTEXT
OR QPSQ.QUALIFIER_ATTRIBUTE <> G_PRICELIST_ATTRIBUTE)
AND QPLAT_Q.CONTEXT = QPSQ.QUALIFIER_CONTEXT
AND QPLAT_Q.ATTRIBUTE = QPSQ.QUALIFIER_ATTRIBUTE
AND QPSQ.LIST_HEADER_ID = QPQ.LIST_HEADER_ID
AND QPSQ.ACTIVE_FLAG = G_YES
AND ((QPLAT_Q.VALUE_FROM = QPSQ.QUALIFIER_ATTR_VALUE --bug#1761272 Multiple NOT =
AND QPSQ.COMPARISON_OPERATOR_CODE = '=')
OR (QPLAT_Q.VALUE_FROM <> QPSQ.QUALIFIER_ATTR_VALUE
AND QPSQ.COMPARISON_OPERATOR_CODE = 'NOT =')
OR
QPSQ.COMPARISON_OPERATOR_CODE = G_OPERATOR_BETWEEN)
AND QPLAT_Q.LINE_INDEX = QPLINES.LINE_INDEX
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(QPSQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPSQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLAT_PROD.LINE_INDEX = QPLAT_Q.LINE_INDEX
AND QPLAT_Q.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND G_QUALIFY_SECONDARY = G_YES
AND ((nvl(QPLAT_Q.DERIVED_QUALIFIER_FLAG,'N')='N')
OR (QPLAT_Q.DERIVED_QUALIFIER_FLAG = 'Y' AND QPSQ.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
ORDER BY 1,2;
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,LINE_INDEX,1
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,PRICING_PHASE_ID,2
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,ASK_FOR_FLAG,3
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,CREATED_FROM_LIST_LINE_TYPE,4
*/
CURSOR l_chk_deleted_pbh_cur(p_line_index IN PLS_INTEGER,
p_pricing_phase_id NUMBER) IS
SELECT 'X'
FROM qp_npreq_ldets_tmp
WHERE created_from_list_line_type = G_PRICE_BREAK_TYPE
AND line_index = p_line_index
AND pricing_phase_id = p_pricing_phase_id
AND pricing_status_code <> G_STATUS_NEW;
Update_Sec_Price_List_Info(l_status_code,l_status_text);
G_LINE_DETAIL_INDEX_TBL.delete;
G_LINE_DETAIL_TYPE_CODE_TBL.delete;
G_LINE_INDEX_TBL.delete;
G_LIST_HEADER_ID_TBL.delete;
G_LIST_LINE_ID_TBL.delete;
G_LIST_LINE_TYPE_TBL.delete;
G_CREATED_FROM_SQL_TBL.delete;
G_PRICING_GROUP_SEQUENCE_TBL.delete;
G_OPERAND_CALCULATION_CODE_TBL.delete;
G_OPERAND_VALUE_TBL.delete;
G_PRICING_PHASE_ID_TBL.delete;
G_LIST_TYPE_CODE_TBL.delete;
G_PRICING_STATUS_CODE_TBL.delete;
G_PROCESSED_FLAG_TBL.delete;
G_AUTOMATIC_FLAG_TBL.delete;
G_MODIFIER_LEVEL_CODE_TBL.delete;
G_LIST_LINE_NO_TBL.delete;
G_INCOMP_GRP_CODE_TBL.delete;
G_PRICE_FORMULA_ID_TBL.delete;
G_PRODUCT_PRECEDENCE_TBL.delete;
G_PRIMARY_UOM_FLAG_TBL.delete;
G_ROUNDING_FACTOR_TBL.delete;
G_SECONDARY_PRICELIST_IND_TBL.delete;
G_CURRENCY_DETAIL_ID_TBL.delete;
G_CURRENCY_HEADER_ID_TBL.delete;
G_SELLING_ROUNDING_TBL.delete;
G_ORDER_CURRENCY_TBL.delete;
G_PRICING_EFFECTIVE_DATE_TBL.delete;
G_BASE_CURRENCY_CODE_TBL.delete;
G_BREAK_UOM_TBL.delete;
G_BREAK_CONTEXT_TBL.delete;
G_BREAK_ATTRIBUTE_TBL.delete;
G_LINE_INDEX_TBL_A.delete;
G_LINE_DETAIL_INDEX_TBL_A.delete;
G_ATTRIBUTE_LEVEL_tbl.delete;
G_ATTRIBUTE_TYPE_tbl.delete;
G_LIST_HEADER_ID_TBL_A.delete;
G_LIST_LINE_ID_TBL_A.delete;
G_CONTEXT_tbl.delete;
G_ATTRIBUTE_tbl.delete;
G_VALUE_FROM_tbl.delete;
G_SETUP_VALUE_FROM_tbl.delete;
G_SETUP_VALUE_TO_tbl.delete;
G_GROUPING_NUMBER_tbl.delete;
G_COMPARISON_OPERATOR_TYPE_tbl.delete;
G_VALIDATED_FLAG_tbl.delete;
G_APPLIED_FLAG_tbl.delete;
G_PRICING_STATUS_CODE_TBL_Q.delete;
G_PRICING_STATUS_TEXT_tbl.delete;
G_QUALIFIER_PRECEDENCE_TBL.delete;
G_DATATYPE_tbl.delete;
G_PRICING_ATTR_FLAG_tbl.delete;
G_QUALIFIER_TYPE_TBL.delete;
G_PRODUCT_UOM_CODE_TBL.delete;
G_EXCLUDER_FLAG_TBL.delete;
G_PRICING_PHASE_ID_TBL_A.delete;
G_INCOMP_GRP_CODE_TBL_A.delete;
G_LINE_DETAIL_TYPE_CODE_TBL_A.delete;
G_MODIFIER_LEVEL_CODE_TBL_A.delete;
G_PRIMARY_UOM_FLAG_TBL_A.delete;
engine_debug('Inserting Secondary Price List Detail');
engine_debug('----BEFORE INSERTING SECONDARY PRODUCT ATTRS -------');
G_PRICING_STATUS_TEXT_tbl(M) := 'INSERTED IN SECONDARY LIST HEADER SEARCH';
engine_debug('----BEFORE INSERTING SECONDARY PRICING ATTRS -------');
G_PRICING_STATUS_TEXT_tbl(M) := 'INSERTED IN SECONDARY LIST HEADER SEARCH';
G_PRICING_STATUS_TEXT_tbl(M) := 'INSERTED IN L_SEC_LIST_CUR_CURRENCY';
engine_debug('Inserting Secondary Price List Detail');
engine_debug('----BEFORE INSERTING SECONDARY PRODUCT ATTRS -------');
G_PRICING_STATUS_TEXT_tbl(M) := 'INSERTED IN SECONDARY LIST HEADER SEARCH';
engine_debug('----BEFORE INSERTING SECONDARY PRICING ATTRS -------');
G_PRICING_STATUS_TEXT_tbl(M) := 'INSERTED IN SECONDARY LIST HEADER SEARCH';
G_PRICING_STATUS_TEXT_tbl(M) := 'INSERTED IN L_SEC_LIST_CUR';
INSERT INTO qp_npreq_ldets_tmp
(LINE_DETAIL_INDEX,
LINE_DETAIL_TYPE_CODE,
LINE_INDEX,
CREATED_FROM_LIST_HEADER_ID,
CREATED_FROM_LIST_LINE_ID,
CREATED_FROM_LIST_LINE_TYPE,
CREATED_FROM_SQL,
PRICING_GROUP_SEQUENCE,
OPERAND_CALCULATION_CODE,
OPERAND_VALUE,
PRICING_PHASE_ID,
CREATED_FROM_LIST_TYPE_CODE,
PRICING_STATUS_CODE,
PROCESSED_FLAG,
AUTOMATIC_FLAG,
MODIFIER_LEVEL_CODE,
LIST_LINE_NO,
INCOMPATABILITY_GRP_CODE,
PRICE_FORMULA_ID,
PRODUCT_PRECEDENCE,
PRIMARY_UOM_FLAG,
ROUNDING_FACTOR,
SECONDARY_PRICELIST_IND,
CURRENCY_DETAIL_ID,
CURRENCY_HEADER_ID,
SELLING_ROUNDING_FACTOR,
ORDER_CURRENCY,
PRICING_EFFECTIVE_DATE,
BASE_CURRENCY_CODE,
BREAK_UOM_CODE,
BREAK_UOM_CONTEXT,
BREAK_UOM_ATTRIBUTE
)
VALUES ( G_line_detail_index_tbl(i),
G_LINE_DETAIL_TYPE_CODE_TBL(I),
G_LINE_INDEX_tbl(i),
G_LIST_HEADER_ID_tbl(i),
G_LIST_LINE_ID_tbl(i),
G_LIST_LINE_TYPE_tbl(i),
G_CREATED_FROM_SQL_TBL(I), -- nth sec price list
G_PRICING_GROUP_SEQUENCE_tbl(i),
G_OPERAND_CALCULATION_CODE_tbl(i),
G_OPERAND_VALUE_tbl(i),
G_PRICING_PHASE_ID_tbl(i),
G_LIST_TYPE_CODE_tbl(i),
G_PRICING_STATUS_CODE_TBL(I),
G_NOT_PROCESSED,
G_AUTOMATIC_FLAG_tbl(i),
G_MODIFIER_LEVEL_CODE_tbl(i),
G_LIST_LINE_NO_tbl(i),
G_INCOMP_GRP_CODE_tbl(i),
G_PRICE_FORMULA_ID_tbl(i),
G_PRODUCT_PRECEDENCE_tbl(i),
G_PRIMARY_UOM_FLAG_tbl(i),
G_ROUNDING_FACTOR_tbl(i),
G_SECONDARY_PRICELIST_IND_TBL(I),
G_CURRENCY_DETAIL_ID_tbl(i),
G_CURRENCY_HEADER_ID_tbl(i),
G_SELLING_ROUNDING_tbl(i),
G_ORDER_CURRENCY_tbl(i),
G_PRICING_EFFECTIVE_DATE_tbl(i),
G_BASE_CURRENCY_CODE_tbl(i),
G_BREAK_UOM_tbl(i), /* Proration */
G_BREAK_CONTEXT_tbl(i), /* Proration */
G_BREAK_ATTRIBUTE_tbl(i) /* Proration */
);
INSERT_PRICE_LIST_ATTRS
( p_LINE_INDEX_tbl =>G_LINE_INDEX_TBL_A,
p_LINE_DETAIL_INDEX_tbl =>G_LINE_DETAIL_INDEX_TBL_A,
p_ATTRIBUTE_LEVEL_tbl =>G_ATTRIBUTE_LEVEL_tbl,
p_ATTRIBUTE_TYPE_tbl =>G_ATTRIBUTE_TYPE_tbl,
p_LIST_HEADER_ID_tbl =>G_LIST_HEADER_ID_tbl_A,
p_LIST_LINE_ID_tbl =>G_LIST_LINE_ID_tbl_A,
p_CONTEXT_tbl =>G_CONTEXT_tbl,
p_ATTRIBUTE_tbl =>G_ATTRIBUTE_tbl,
p_VALUE_FROM_tbl =>G_VALUE_FROM_tbl,
p_SETUP_VALUE_FROM_tbl =>G_SETUP_VALUE_FROM_tbl,
p_SETUP_VALUE_TO_tbl =>G_SETUP_VALUE_TO_tbl,
p_GROUPING_NUMBER_tbl =>G_GROUPING_NUMBER_tbl,
p_COMPARISON_OPERATOR_TYPE_tbl =>G_COMPARISON_OPERATOR_TYPE_tbl,
p_VALIDATED_FLAG_tbl =>G_VALIDATED_FLAG_tbl,
p_APPLIED_FLAG_tbl =>G_APPLIED_FLAG_tbl,
p_PRICING_STATUS_CODE_tbl =>G_PRICING_STATUS_CODE_TBL_Q,
p_PRICING_STATUS_TEXT_tbl =>G_PRICING_STATUS_TEXT_tbl,
p_QUALIFIER_PRECEDENCE_tbl =>G_QUALIFIER_PRECEDENCE_tbl,
p_DATATYPE_tbl =>G_DATATYPE_tbl,
p_PRICING_ATTR_FLAG_tbl =>G_PRICING_ATTR_FLAG_tbl,
p_QUALIFIER_TYPE_tbl =>G_QUALIFIER_TYPE_TBL,
p_PRODUCT_UOM_CODE_TBL =>G_PRODUCT_UOM_CODE_TBL,
p_EXCLUDER_FLAG_TBL =>G_EXCLUDER_FLAG_TBL,
p_PRICING_PHASE_ID_TBL =>G_PRICING_PHASE_ID_TBL_A,
p_INCOMPATABILITY_GRP_CODE_TBL =>G_INCOMP_GRP_CODE_TBL_A,
p_LINE_DETAIL_TYPE_CODE_TBL =>G_LINE_DETAIL_TYPE_CODE_TBL_A,
p_MODIFIER_LEVEL_CODE_TBL =>G_MODIFIER_LEVEL_CODE_TBL_A,
p_PRIMARY_UOM_FLAG_TBL =>G_PRIMARY_UOM_FLAG_TBL_A,
x_status_code =>l_status_code,
x_status_text =>l_status_text);
select 'x' into l_dummy
from qp_npreq_lines_tmp
where LINE_UOM_CODE <> nvl(PRICED_UOM_CODE, LINE_UOM_CODE)
and (PRICE_FLAG = G_YES
or
PRICE_FLAG = G_PHASE and p_freeze_override_flag = G_YES)
and rownum = 1;
Update_Request_Line_Status(p_control_rec,'SUCCESS',p_freeze_override_flag,l_status_code,l_status_text); --[julin/4708044]
/* OPEN l_chk_deleted_pbh_cur(l_line_index,G_PRICE_LIST_PHASE_ID);
FETCH l_chk_deleted_pbh_cur INTO l_dummy;
IF l_chk_deleted_pbh_cur%FOUND THEN
Delete_Invalid_PBH_Children(l_line_index,G_PRICE_LIST_PHASE_ID);
CLOSE l_chk_deleted_pbh_cur; */
Update_Request_Line_Status(p_control_rec,'FAILURE',p_freeze_override_flag,l_status_code,l_status_text); --[juiln/4708044]
| These lines were not selected by the big union
| select statement at all. Instead, they were populated by populate_temp_table
| This routine has not hadled the case where a price break
| list is passed in as qualifier...
+-------------------------------------------------------------
*/
PROCEDURE LIST_HEADER_SEARCH (
p_pricing_phase_id IN NUMBER,
p_is_price_list IN BOOLEAN,
p_freeze_override_flag IN VARCHAR2,
p_control_rec IN CONTROL_RECORD_TYPE,
p_list_mode IN VARCHAR2, --Modifier or Price list Mode
x_further_search OUT NOCOPY VARCHAR2,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
/*
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,qp_npreq_lines_tmp_N3,VALIDATED_FLAG,1
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,qp_npreq_lines_tmp_N3,QUALIFIERS_EXIST_FLAG,2
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,qp_npreq_lines_tmp_N3,PRICING_ATTRS_EXIST_FLAG,3
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,qp_npreq_line_attrs_tmp_N1,LINE_INDEX,1
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,qp_npreq_line_attrs_tmp_N1,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,qp_npreq_line_attrs_tmp_N1,PRICING_STATUS_CODE,3
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,QP_PRICING_ATTRIBUTES_N5,PRICING_PHASE_ID,1
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,QP_PRICING_ATTRIBUTES_N5,QUALIFICATION_IND,2
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE_CONTEXT,3
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE,4
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTR_VALUE,5
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,QP_PRICING_ATTRIBUTES_N5,EXCLUDER_FLAG,6
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,QP_PRICING_ATTRIBUTES_N5,LIST_HEADER_ID,7
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,QP_PRICING_ATTRIBUTES_N5,LIST_LINE_ID,8
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,QP_LIST_LINES_PK,LIST_LINE_ID,1
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,QP_LIST_HEADERS_B_PK,LIST_HEADER_ID,1
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,QP_PRICE_REQ_SOURCES_PK,REQUEST_TYPE_CODE,1
INDX,QP_PREQ_GRP.list_header_search.l_list_cur,QP_PRICE_REQ_SOURCES_PK,SOURCE_SYSTEM_CODE,2
*/
CURSOR L_LIST_CUR IS
SELECT /*+ ORDERED USE_NL(QPLAT_PROD QPA QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) dynamic_sampling(1) l_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
QPH.ROUNDING_FACTOR,
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
NULL PRICING_ATTRIBUTE_CONTEXT,
NULL PRICING_ATTRIBUTE,
NULL PRICING_ATTR_VALUE_FROM,
NULL PRICING_SETUP_VALUE_FROM,
NULL PRICING_SETUP_VALUE_TO,
NULL PRICING_ATTRIBUTE_LEVEL,
NULL PRICING_ATTRIBUTE_TYPE,
NULL PRICING_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_DATATYPE
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM
qp_npreq_lines_tmp QPLINES,
qp_npreq_line_attrs_tmp qplat_prod,
QP_PRICING_ATTRIBUTES QPA,
QP_LIST_LINES QPL,
QP_LIST_HEADERS_B QPH,
--QP_PRICE_REQ_SOURCES qprs
QP_PRICE_REQ_SOURCES_V qprs /* yangli */
WHERE QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND, QP_PREQ_GRP.G_YES_PROD_IND)
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_YES
AND QPLINES.QUALIFIERS_EXIST_FLAG IN (G_YES,G_NO)
--AND QPLINES.PRICING_ATTRS_EXIST_FLAG = G_NO
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR --begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPA.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPL.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND, QP_PREQ_GRP.G_YES_PROD_IND)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPLINES.START_DATE_ACTIVE_FIRST,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.START_DATE_ACTIVE_SECOND,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_FIRST_TYPE,NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X'))
AND NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_SECOND_TYPE,NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X'))
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLAT_PROD QPA QPLAT_PRIC QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qplat_pric qp_preq_line_attrs_tmp_N2) dynamic_sampling(1) l_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
QPH.ROUNDING_FACTOR,
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
QPLAT_PRIC.CONTEXT PRICING_ATTRIBUTE_CONTEXT,
QPLAT_PRIC.ATTRIBUTE PRICING_ATTRIBUTE,
QPLAT_PRIC.VALUE_FROM PRICING_ATTR_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_FROM PRICING_SETUP_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_TO PRICING_SETUP_VALUE_TO,
QPLAT_PRIC.ATTRIBUTE_LEVEL PRICING_ATTRIBUTE_LEVEL,
QPLAT_PRIC.ATTRIBUTE_TYPE PRICING_ATTRIBUTE_TYPE,
QPA.COMPARISON_OPERATOR_CODE PRICING_OPERATOR_TYPE,
QPA.PRICING_ATTRIBUTE_DATATYPE PRICING_ATTRIBUTE_DATATYPE
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM
qp_npreq_lines_tmp qplines,
qp_npreq_line_attrs_tmp qplat_prod,
QP_PRICING_ATTRIBUTES qpa,
qp_npreq_line_attrs_tmp qplat_pric,
QP_LIST_LINES qpl,
QP_LIST_HEADERS_B qph,
--QP_PRICE_REQ_SOURCES qprs
QP_PRICE_REQ_SOURCES_V qprs /* yangli */
WHERE QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_PRIC_IND)
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_YES
AND QPLINES.QUALIFIERS_EXIST_FLAG IN (G_YES,G_NO)
AND QPLINES.PRICING_ATTRS_EXIST_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPA.PRICING_ATTRIBUTE_CONTEXT IS NOT NULL
AND QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
AND QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
AND (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
OR
QPA.COMPARISON_OPERATOR_CODE IN ('NOT =', G_OPERATOR_BETWEEN))
AND QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
AND QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.LINE_INDEX = QPLAT_PROD.LINE_INDEX
AND QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPA.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPL.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_PRIC_IND)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPLINES.START_DATE_ACTIVE_FIRST,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.START_DATE_ACTIVE_SECOND,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_FIRST_TYPE,NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X'))
AND NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_SECOND_TYPE,NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X'))
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 1,2; --ORDER BY LINE_INDEX AND LIST LINE ID
SELECT /*+ ORDERED USE_NL(QPLAT_PROD QPA QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) l_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
/* vivek QPH.ROUNDING_FACTOR, */
QCDT.ROUNDING_FACTOR, /* vivek */
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
NULL PRICING_ATTRIBUTE_CONTEXT,
NULL PRICING_ATTRIBUTE,
NULL PRICING_ATTR_VALUE_FROM,
NULL PRICING_SETUP_VALUE_FROM,
NULL PRICING_SETUP_VALUE_TO,
NULL PRICING_ATTRIBUTE_LEVEL,
NULL PRICING_ATTRIBUTE_TYPE,
NULL PRICING_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_DATATYPE,
QCDT.CURRENCY_DETAIL_ID, /* sunilpandey */
QCDT.CURRENCY_HEADER_ID, /* vivek */
QCDT.SELLING_ROUNDING_FACTOR, /* vivek */
QPLINES.CURRENCY_CODE ORDER_CURRENCY, /* vivek */
QPLINES.PRICING_EFFECTIVE_DATE, /* vivek */
QPH.CURRENCY_CODE BASE_CURRENCY_CODE /* vivek */
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM
qp_npreq_lines_tmp QPLINES,
qp_npreq_line_attrs_tmp qplat_prod,
QP_PRICING_ATTRIBUTES QPA,
QP_LIST_LINES QPL,
QP_LIST_HEADERS_B QPH,
--QP_PRICE_REQ_SOURCES qprs,
QP_PRICE_REQ_SOURCES_V qprs, /* yangli */
QP_CURRENCY_DETAILS QCDT /* Vivek */
WHERE QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND, QP_PREQ_GRP.G_YES_PROD_IND)
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_YES
AND QPLINES.QUALIFIERS_EXIST_FLAG IN (G_YES,G_NO)
--AND QPLINES.PRICING_ATTRS_EXIST_FLAG = G_NO
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPA.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPL.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND, QP_PREQ_GRP.G_YES_PROD_IND)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPLINES.START_DATE_ACTIVE_FIRST,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.START_DATE_ACTIVE_SECOND,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_FIRST_TYPE,NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X'))
AND NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_SECOND_TYPE,NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X'))
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
/* Vivek AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE */
AND QPH.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID /* Vivek */
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND ( /* Vivek */
(qcdt.curr_attribute_context is null /* Vivek */
and not exists /* Vivek */
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1 /* Vivek */
where qcdt1.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt1.curr_attribute_context = pa_tmp.context /* Vivek */
and qcdt1.curr_attribute = pa_tmp.attribute /* Vivek */
and qcdt1.curr_attribute_value = pa_tmp.value_from /* Vivek */
and qcdt1.curr_attribute_type = pa_tmp.ATTRIBUTE_TYPE /* Vivek */
and qcdt1.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt1.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT1.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT1.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
) /* Vivek */
) /* Vivek */
OR /* Vivek */
(qcdt.curr_attribute_context is not null /* Vivek */
and qcdt.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2 /* Vivek */
where qcdt2.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt2.curr_attribute_context = pa_tmp1.context /* Vivek */
and qcdt2.curr_attribute = pa_tmp1.attribute /* Vivek */
and qcdt2.curr_attribute_value = pa_tmp1.value_from /* Vivek */
and qcdt2.curr_attribute_type = pa_tmp1.ATTRIBUTE_TYPE /* Vivek */
and qcdt2.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt2.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp1.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT2.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT2.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
) /* Vivek */
) /* Vivek */
) /* Vivek */
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLAT_PROD QPA QPLAT_PRIC QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qplat_pric qp_preq_line_attrs_tmp_N2) l_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
/* vivek QPH.ROUNDING_FACTOR, */
QCDT.ROUNDING_FACTOR, /* vivek */
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
QPLAT_PRIC.CONTEXT PRICING_ATTRIBUTE_CONTEXT,
QPLAT_PRIC.ATTRIBUTE PRICING_ATTRIBUTE,
QPLAT_PRIC.VALUE_FROM PRICING_ATTR_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_FROM PRICING_SETUP_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_TO PRICING_SETUP_VALUE_TO,
QPLAT_PRIC.ATTRIBUTE_LEVEL PRICING_ATTRIBUTE_LEVEL,
QPLAT_PRIC.ATTRIBUTE_TYPE PRICING_ATTRIBUTE_TYPE,
QPA.COMPARISON_OPERATOR_CODE PRICING_OPERATOR_TYPE,
QPA.PRICING_ATTRIBUTE_DATATYPE PRICING_ATTRIBUTE_DATATYPE,
QCDT.CURRENCY_DETAIL_ID, /* sunilpandey */
QCDT.CURRENCY_HEADER_ID, /* vivek */
QCDT.SELLING_ROUNDING_FACTOR, /* vivek */
QPLINES.CURRENCY_CODE ORDER_CURRENCY, /* vivek */
QPLINES.PRICING_EFFECTIVE_DATE, /* vivek */
QPH.CURRENCY_CODE BASE_CURRENCY_CODE /* vivek */
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM
qp_npreq_lines_tmp qplines,
qp_npreq_line_attrs_tmp qplat_prod,
QP_PRICING_ATTRIBUTES qpa,
qp_npreq_line_attrs_tmp qplat_pric,
QP_LIST_LINES qpl,
QP_LIST_HEADERS_B qph,
--QP_PRICE_REQ_SOURCES qprs,
QP_PRICE_REQ_SOURCES_V qprs, /* yangli */
QP_CURRENCY_DETAILS QCDT /* Vivek */
WHERE QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_PRIC_IND)
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_YES
AND QPLINES.QUALIFIERS_EXIST_FLAG IN (G_YES,G_NO)
AND QPLINES.PRICING_ATTRS_EXIST_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPA.PRICING_ATTRIBUTE_CONTEXT IS NOT NULL
AND QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
AND QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
AND (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
OR
QPA.COMPARISON_OPERATOR_CODE IN ('NOT =', G_OPERATOR_BETWEEN))
AND QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
AND QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.LINE_INDEX = QPLAT_PROD.LINE_INDEX
AND QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPA.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPL.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_PRIC_IND)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPLINES.START_DATE_ACTIVE_FIRST,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.START_DATE_ACTIVE_SECOND,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_FIRST_TYPE,NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X'))
AND NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_SECOND_TYPE,NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X'))
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
/* Vivek AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE */
AND QPH.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID /* Vivek */
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND ( /* Vivek */
(qcdt.curr_attribute_context is null /* Vivek */
and not exists /* Vivek */
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1 /* Vivek */
where qcdt1.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt1.curr_attribute_context = pa_tmp.context /* Vivek */
and qcdt1.curr_attribute = pa_tmp.attribute /* Vivek */
and qcdt1.curr_attribute_value = pa_tmp.value_from /* Vivek */
and qcdt1.curr_attribute_type = pa_tmp.ATTRIBUTE_TYPE /* Vivek */
and qcdt1.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt1.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT1.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT1.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
) /* Vivek */
) /* Vivek */
OR /* Vivek */
(qcdt.curr_attribute_context is not null /* Vivek */
and qcdt.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2 /* Vivek */
where qcdt2.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt2.curr_attribute_context = pa_tmp1.context /* Vivek */
and qcdt2.curr_attribute = pa_tmp1.attribute /* Vivek */
and qcdt2.curr_attribute_value = pa_tmp1.value_from /* Vivek */
and qcdt2.curr_attribute_type = pa_tmp1.ATTRIBUTE_TYPE /* Vivek */
and qcdt2.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt2.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp1.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT2.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT2.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
) /* Vivek */
) /* Vivek */
) /* Vivek */
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 1,2; --ORDER BY LINE_INDEX AND LIST LINE ID
SELECT /*+ ORDERED USE_NL(QPQ QPLAT_Q QPLAT_PROD QPA QPL QPH) INDEX(QPQ QP_QUALIFIERS_N1) INDEX(QPLAT_Q qp_preq_line_attrs_tmp_N2) INDEX(QPA QP_PRICING_ATTRIBUTES_N5) dynamic_sampling(1) l_list_qual_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
QPH.ROUNDING_FACTOR,
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
NULL PRICING_ATTRIBUTE_CONTEXT,
NULL PRICING_ATTRIBUTE,
NULL PRICING_ATTR_VALUE_FROM,
NULL PRICING_SETUP_VALUE_FROM,
NULL PRICING_SETUP_VALUE_TO,
NULL PRICING_ATTRIBUTE_LEVEL,
NULL PRICING_ATTRIBUTE_TYPE,
NULL PRICING_OPERATOR_TYPE,
QPLAT_Q.CONTEXT QUALIFIER_ATTRIBUTE_CONTEXT,
QPLAT_Q.ATTRIBUTE QUALIFIER_ATTRIBUTE,
QPLAT_Q.VALUE_FROM QUALIFIER_ATTR_VALUE_FROM,
QPLAT_Q.PRICING_ATTR_FLAG QUALIFIER_PRICING_ATTR_FLAG,
QPQ.QUALIFIER_GROUPING_NO QUALIFIER_GROUPING_NO,
QPQ.QUALIFIER_PRECEDENCE QUALIFIER_PRECEDENCE,
QPQ.QUALIFIER_DATATYPE QUALIFIER_DATATYPE,
QPQ.QUALIFIER_ATTR_VALUE SETUP_VALUE_FROM,
QPQ.QUALIFIER_ATTR_VALUE_TO SETUP_VALUE_TO,
QPQ.COMPARISON_OPERATOR_CODE QUALIFIER_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_DATATYPE,
decode(QPQ.list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,QPLAT_Q.DERIVED_QUALIFIER_FLAG -- Added for TCA
,QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM
qp_npreq_lines_tmp QPLINES,
QP_QUALIFIERS QPQ,
qp_npreq_line_attrs_tmp QPLAT_Q,
qp_npreq_line_attrs_tmp QPLAT_PROD,
QP_PRICING_ATTRIBUTES QPA,
QP_LIST_LINES QPL,
QP_LIST_HEADERS_B QPH,
--QP_PRICE_REQ_SOURCES QPRS
QP_PRICE_REQ_SOURCES_V QPRS /* yangli */
WHERE QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_NO
AND QPLINES.QUALIFIERS_EXIST_FLAG = G_YES
--AND QPLINES.PRICING_ATTRS_EXIST_FLAG = G_NO
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPL.LIST_HEADER_ID = QPH.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
--AND QPL.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPA.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_Q.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
-- 3594459, context and attribute OR'd together
AND (QPQ.QUALIFIER_CONTEXT <> G_LIST_HEADER_CONTEXT
OR QPQ.QUALIFIER_ATTRIBUTE <> G_PRICELIST_ATTRIBUTE)
AND QPLAT_Q.CONTEXT = QPQ.QUALIFIER_CONTEXT
AND QPLAT_Q.ATTRIBUTE = QPQ.QUALIFIER_ATTRIBUTE
AND QPQ.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPQ.ACTIVE_FLAG = G_YES
AND ((QPLAT_Q.VALUE_FROM = QPQ.QUALIFIER_ATTR_VALUE --bug#1761272 Multiple NOT =
AND QPQ.COMPARISON_OPERATOR_CODE = '=')
OR (QPLAT_Q.VALUE_FROM <> QPQ.QUALIFIER_ATTR_VALUE
AND QPQ.COMPARISON_OPERATOR_CODE = 'NOT =')
OR
QPQ.COMPARISON_OPERATOR_CODE = G_OPERATOR_BETWEEN)
AND QPLAT_Q.LINE_INDEX = QPLINES.LINE_INDEX
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(QPQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLAT_PROD.LINE_INDEX = QPLAT_Q.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_Q. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(QPLAT_Q.DERIVED_QUALIFIER_FLAG,'N')='N')
OR (QPLAT_Q.DERIVED_QUALIFIER_FLAG = 'Y' AND QPQ.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLINES QPQ QPLAT_Q QPLAT_PROD QPA QPLAT_PRIC QPL QPH) INDEX(QPQ QP_QUALIFIERS_N1) INDEX(QPLAT_Q qp_preq_line_attrs_tmp_N2)
INDEX(QPA QP_PRICING_ATTRIBUTES_N5) INDEX(QPLAT_PRIC qp_preq_line_attrs_tmp_N2) dynamic_sampling(1) l_list_qual_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
QPH.ROUNDING_FACTOR,
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
QPLAT_PRIC.CONTEXT PRICING_ATTRIBUTE_CONTEXT,
QPLAT_PRIC.ATTRIBUTE PRICING_ATTRIBUTE,
QPLAT_PRIC.VALUE_FROM PRICING_ATTR_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_FROM PRICING_SETUP_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_TO PRICING_SETUP_VALUE_TO,
QPLAT_PRIC.ATTRIBUTE_LEVEL PRICING_ATTRIBUTE_LEVEL,
QPLAT_PRIC.ATTRIBUTE_TYPE PRICING_ATTRIBUTE_TYPE,
QPA.COMPARISON_OPERATOR_CODE PRICING_OPERATOR_TYPE,
QPLAT_Q.CONTEXT QUALIFIER_ATTRIBUTE_CONTEXT,
QPLAT_Q.ATTRIBUTE QUALIFIER_ATTRIBUTE,
QPLAT_Q.VALUE_FROM QUALIFIER_ATTR_VALUE_FROM,
QPLAT_Q.PRICING_ATTR_FLAG QUALIFIER_PRICING_ATTR_FLAG,
QPQ.QUALIFIER_GROUPING_NO QUALIFIER_GROUPING_NO,
QPQ.QUALIFIER_PRECEDENCE QUALIFIER_PRECEDENCE,
QPQ.QUALIFIER_DATATYPE QUALIFIER_DATATYPE,
QPQ.QUALIFIER_ATTR_VALUE SETUP_VALUE_FROM,
QPQ.QUALIFIER_ATTR_VALUE_TO SETUP_VALUE_TO,
QPQ.COMPARISON_OPERATOR_CODE QUALIFIER_OPERATOR_TYPE,
QPA.PRICING_ATTRIBUTE_DATATYPE PRICING_ATTRIBUTE_DATATYPE,
decode(QPQ.list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,QPLAT_Q.DERIVED_QUALIFIER_FLAG -- Added for TCA
,QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM
qp_npreq_lines_tmp QPLINES,
QP_QUALIFIERS QPQ,
qp_npreq_line_attrs_tmp QPLAT_Q,
qp_npreq_line_attrs_tmp QPLAT_PROD,
QP_PRICING_ATTRIBUTES QPA,
qp_npreq_line_attrs_tmp QPLAT_PRIC,
QP_LIST_LINES QPL,
QP_LIST_HEADERS_B QPH,
--QP_PRICE_REQ_SOURCES QPRS
QP_PRICE_REQ_SOURCES_V QPRS /* yangli */
WHERE QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_NO
AND QPLINES.QUALIFIERS_EXIST_FLAG = G_YES
AND QPLINES.PRICING_ATTRS_EXIST_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
--AND QPA.PRICING_ATTRIBUTE_CONTEXT IS NOT NULL
AND QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
AND QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
AND (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
OR
QPA.COMPARISON_OPERATOR_CODE IN ('NOT =', G_OPERATOR_BETWEEN))
AND QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
AND QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.LINE_INDEX = QPLAT_PROD.LINE_INDEX
AND QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
--AND QPL.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPA.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_Q.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
-- 3594459, context and attribute OR'd together
AND (QPQ.QUALIFIER_CONTEXT <> G_LIST_HEADER_CONTEXT
OR QPQ.QUALIFIER_ATTRIBUTE <> G_PRICELIST_ATTRIBUTE)
AND QPLAT_Q.CONTEXT = QPQ.QUALIFIER_CONTEXT
AND QPLAT_Q.ATTRIBUTE = QPQ.QUALIFIER_ATTRIBUTE
AND QPQ.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPQ.ACTIVE_FLAG = G_YES
AND ((QPLAT_Q.VALUE_FROM = QPQ.QUALIFIER_ATTR_VALUE --bug#1761272 Multiple NOT =
AND QPQ.COMPARISON_OPERATOR_CODE = '=')
OR (QPLAT_Q.VALUE_FROM <> QPQ.QUALIFIER_ATTR_VALUE
AND QPQ.COMPARISON_OPERATOR_CODE = 'NOT =')
OR
QPQ.COMPARISON_OPERATOR_CODE = G_OPERATOR_BETWEEN)
AND QPLAT_Q.LINE_INDEX = QPLINES.LINE_INDEX
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(QPQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_Q.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(QPLAT_Q.DERIVED_QUALIFIER_FLAG,'N')='N')
OR (QPLAT_Q.DERIVED_QUALIFIER_FLAG = 'Y' AND QPQ.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLINES QPLAT_PROD QPA QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) dynamic_sampling(1) l_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
QPH.ROUNDING_FACTOR,
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
NULL PRICING_ATTRIBUTE_CONTEXT,
NULL PRICING_ATTRIBUTE,
NULL PRICING_ATTR_VALUE_FROM,
NULL PRICING_SETUP_VALUE_FROM,
NULL PRICING_SETUP_VALUE_TO,
NULL PRICING_ATTRIBUTE_LEVEL,
NULL PRICING_ATTRIBUTE_TYPE,
NULL PRICING_OPERATOR_TYPE,
NULL QUALIFIER_ATTRIBUTE_CONTEXT,
NULL QUALIFIER_ATTRIBUTE,
NULL QUALIFIER_ATTR_VALUE_FROM,
NULL QUALIFIER_PRICING_ATTR_FLAG,
-9999 QUALIFIER_GROUPING_NO,
5000 QUALIFIER_PRECEDENCE,
NULL QUALIFIER_DATATYPE,
NULL SETUP_VALUE_FROM,
NULL SETUP_VALUE_TO,
NULL QUALIFIER_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_DATATYPE,
NULL QUALIFIER_TYPE
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,qplat_prod.DERIVED_QUALIFIER_FLAG -- Added for TCA
,QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM
qp_npreq_lines_tmp QPLINES,
qp_npreq_line_attrs_tmp qplat_prod,
QP_PRICING_ATTRIBUTES QPA,
QP_LIST_LINES QPL,
QP_LIST_HEADERS_B QPH,
--QP_PRICE_REQ_SOURCES qprs
QP_PRICE_REQ_SOURCES_V qprs /* yangli */
WHERE QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_IND
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_NO
AND QPLINES.QUALIFIERS_EXIST_FLAG = G_NO
--AND QPLINES.PRICING_ATTRS_EXIST_FLAG = G_NO
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPA.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLINES QPLAT_PROD QPA QPLAT_PRIC QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) INDEX(QPLAT_PRIC qp_preq_line_attrs_tmp_N2) dynamic_sampling(1) l_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
QPH.ROUNDING_FACTOR,
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
QPLAT_PRIC.CONTEXT PRICING_ATTRIBUTE_CONTEXT,
QPLAT_PRIC.ATTRIBUTE PRICING_ATTRIBUTE,
QPLAT_PRIC.VALUE_FROM PRICING_ATTR_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_FROM PRICING_SETUP_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_TO PRICING_SETUP_VALUE_TO,
QPLAT_PRIC.ATTRIBUTE_LEVEL PRICING_ATTRIBUTE_LEVEL,
QPLAT_PRIC.ATTRIBUTE_TYPE PRICING_ATTRIBUTE_TYPE,
QPA.COMPARISON_OPERATOR_CODE PRICING_OPERATOR_TYPE,
NULL QUALIFIER_ATTRIBUTE_CONTEXT,
NULL QUALIFIER_ATTRIBUTE,
NULL QUALIFIER_ATTR_VALUE_FROM,
NULL QUALIFIER_PRICING_ATTR_FLAG,
-9999 QUALIFIER_GROUPING_NO,
5000 QUALIFIER_PRECEDENCE,
NULL QUALIFIER_DATATYPE,
NULL SETUP_VALUE_FROM,
NULL SETUP_VALUE_TO,
NULL QUALIFIER_OPERATOR_TYPE,
QPA.PRICING_ATTRIBUTE_DATATYPE PRICING_ATTRIBUTE_DATATYPE,
NULL QUALIFIER_TYPE
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,qplat_pric.DERIVED_QUALIFIER_FLAG -- Added for TCA
,QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM
qp_npreq_lines_tmp qplines,
qp_npreq_line_attrs_tmp qplat_prod,
QP_PRICING_ATTRIBUTES qpa,
qp_npreq_line_attrs_tmp qplat_pric,
QP_LIST_LINES qpl,
QP_LIST_HEADERS_B qph,
--QP_PRICE_REQ_SOURCES qprs
QP_PRICE_REQ_SOURCES_V qprs /* yangli */
WHERE QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_IND
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_NO
AND QPLINES.QUALIFIERS_EXIST_FLAG = G_NO
AND QPLINES.PRICING_ATTRS_EXIST_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
AND QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
AND (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
OR
QPA.COMPARISON_OPERATOR_CODE IN ('NOT =', G_OPERATOR_BETWEEN))
AND QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
AND QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.LINE_INDEX = QPLAT_PROD.LINE_INDEX
AND QPH.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPA.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 1,2;
SELECT /*+ ORDERED USE_NL(QPQ QPLAT_Q QPLAT_PROD QPA QPL QPH) INDEX(QPQ QP_QUALIFIERS_N1) INDEX(QPLAT_Q qp_preq_line_attrs_tmp_N2) l_list_qual_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
/* vivek QPH.ROUNDING_FACTOR, */
QCDT.ROUNDING_FACTOR, /* vivek */
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
NULL PRICING_ATTRIBUTE_CONTEXT,
NULL PRICING_ATTRIBUTE,
NULL PRICING_ATTR_VALUE_FROM,
NULL PRICING_SETUP_VALUE_FROM,
NULL PRICING_SETUP_VALUE_TO,
NULL PRICING_ATTRIBUTE_LEVEL,
NULL PRICING_ATTRIBUTE_TYPE,
NULL PRICING_OPERATOR_TYPE,
QPLAT_Q.CONTEXT QUALIFIER_ATTRIBUTE_CONTEXT,
QPLAT_Q.ATTRIBUTE QUALIFIER_ATTRIBUTE,
QPLAT_Q.VALUE_FROM QUALIFIER_ATTR_VALUE_FROM,
QPLAT_Q.PRICING_ATTR_FLAG QUALIFIER_PRICING_ATTR_FLAG,
QPQ.QUALIFIER_GROUPING_NO QUALIFIER_GROUPING_NO,
QPQ.QUALIFIER_PRECEDENCE QUALIFIER_PRECEDENCE,
QPQ.QUALIFIER_DATATYPE QUALIFIER_DATATYPE,
QPQ.QUALIFIER_ATTR_VALUE SETUP_VALUE_FROM,
QPQ.QUALIFIER_ATTR_VALUE_TO SETUP_VALUE_TO,
QPQ.COMPARISON_OPERATOR_CODE QUALIFIER_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_DATATYPE,
decode(QPQ.list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE,
QCDT.CURRENCY_DETAIL_ID, /* sunilpandey */
QCDT.CURRENCY_HEADER_ID, /* vivek */
QCDT.SELLING_ROUNDING_FACTOR, /* vivek */
QPLINES.CURRENCY_CODE ORDER_CURRENCY, /* vivek */
QPLINES.PRICING_EFFECTIVE_DATE, /* vivek */
QPH.CURRENCY_CODE BASE_CURRENCY_CODE /* vivek */
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,QPLAT_Q.DERIVED_QUALIFIER_FLAG -- Added for TCA
,QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM
qp_npreq_lines_tmp QPLINES,
QP_QUALIFIERS QPQ,
qp_npreq_line_attrs_tmp QPLAT_Q,
qp_npreq_line_attrs_tmp QPLAT_PROD,
QP_PRICING_ATTRIBUTES QPA,
QP_LIST_LINES QPL,
QP_LIST_HEADERS_B QPH,
--QP_PRICE_REQ_SOURCES QPRS,
QP_PRICE_REQ_SOURCES_V QPRS, /* yangli */
QP_CURRENCY_DETAILS QCDT /* Vivek */
WHERE QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_NO
AND QPLINES.QUALIFIERS_EXIST_FLAG = G_YES
--AND QPLINES.PRICING_ATTRS_EXIST_FLAG = G_NO
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPL.LIST_HEADER_ID = QPH.LIST_HEADER_ID
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPA.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
/* Vivek AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE */
AND QPH.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID /* Vivek */
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND ( /* Vivek */
(qcdt.curr_attribute_context is null /* Vivek */
and not exists /* Vivek */
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1 /* Vivek */
where qcdt1.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt1.curr_attribute_context = pa_tmp.context /* Vivek */
and qcdt1.curr_attribute = pa_tmp.attribute /* Vivek */
and qcdt1.curr_attribute_value = pa_tmp.value_from /* Vivek */
and qcdt1.curr_attribute_type = pa_tmp.ATTRIBUTE_TYPE /* Vivek */
and qcdt1.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt1.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT1.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT1.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
) /* Vivek */
) /* Vivek */
OR /* Vivek */
(qcdt.curr_attribute_context is not null /* Vivek */
and qcdt.currency_detail_id = /* Vivek */
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3 /* Vivek */
where qcdt3.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt3.currency_header_id = qcdt.currency_header_id /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT3.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT3.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
and qcdt3.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2 /* Vivek */
where qcdt2.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt2.curr_attribute_context = pa_tmp1.context /* Vivek */
and qcdt2.curr_attribute = pa_tmp1.attribute /* Vivek */
and qcdt2.curr_attribute_value = pa_tmp1.value_from /* Vivek */
and qcdt2.curr_attribute_type = pa_tmp1.ATTRIBUTE_TYPE /* Vivek */
and qcdt2.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt2.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp1.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT2.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT2.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
)) /* Vivek */
) /* Vivek */
) /* Vivek */
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_Q.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
-- 3594459, context and attribute OR'd together
AND (QPQ.QUALIFIER_CONTEXT <> G_LIST_HEADER_CONTEXT
OR QPQ.QUALIFIER_ATTRIBUTE <> G_PRICELIST_ATTRIBUTE)
AND QPLAT_Q.CONTEXT = QPQ.QUALIFIER_CONTEXT
AND QPLAT_Q.ATTRIBUTE = QPQ.QUALIFIER_ATTRIBUTE
AND QPQ.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPQ.ACTIVE_FLAG = G_YES
AND ((QPLAT_Q.VALUE_FROM = QPQ.QUALIFIER_ATTR_VALUE --bug#1761272 Multiple NOT =
AND QPQ.COMPARISON_OPERATOR_CODE = '=')
OR (QPLAT_Q.VALUE_FROM <> QPQ.QUALIFIER_ATTR_VALUE
AND QPQ.COMPARISON_OPERATOR_CODE = 'NOT =')
OR
QPQ.COMPARISON_OPERATOR_CODE = G_OPERATOR_BETWEEN)
AND QPLAT_Q.LINE_INDEX = QPLINES.LINE_INDEX
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(QPQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLAT_PROD.LINE_INDEX = QPLAT_Q.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_Q. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(QPLAT_Q.DERIVED_QUALIFIER_FLAG,'N')='N')
OR (QPLAT_Q.DERIVED_QUALIFIER_FLAG = 'Y' AND QPQ.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLINES QPQ QPLAT_Q QPLAT_PROD QPA QPLAT_PRIC QPL QPH) INDEX(QPQ QP_QUALIFIERS_N1) INDEX(QPLAT_Q qp_preq_line_attrs_tmp_N2) INDEX(QPA QP_PRICING_ATTRIBUTES_N5) INDEX(QPLAT_PRIC qp_preq_line_attrs_tmp_N2) l_list_qual_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
/* vivek QPH.ROUNDING_FACTOR, */
QCDT.ROUNDING_FACTOR, /* vivek */
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
QPLAT_PRIC.CONTEXT PRICING_ATTRIBUTE_CONTEXT,
QPLAT_PRIC.ATTRIBUTE PRICING_ATTRIBUTE,
QPLAT_PRIC.VALUE_FROM PRICING_ATTR_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_FROM PRICING_SETUP_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_TO PRICING_SETUP_VALUE_TO,
QPLAT_PRIC.ATTRIBUTE_LEVEL PRICING_ATTRIBUTE_LEVEL,
QPLAT_PRIC.ATTRIBUTE_TYPE PRICING_ATTRIBUTE_TYPE,
QPA.COMPARISON_OPERATOR_CODE PRICING_OPERATOR_TYPE,
QPLAT_Q.CONTEXT QUALIFIER_ATTRIBUTE_CONTEXT,
QPLAT_Q.ATTRIBUTE QUALIFIER_ATTRIBUTE,
QPLAT_Q.VALUE_FROM QUALIFIER_ATTR_VALUE_FROM,
QPLAT_Q.PRICING_ATTR_FLAG QUALIFIER_PRICING_ATTR_FLAG,
QPQ.QUALIFIER_GROUPING_NO QUALIFIER_GROUPING_NO,
QPQ.QUALIFIER_PRECEDENCE QUALIFIER_PRECEDENCE,
QPQ.QUALIFIER_DATATYPE QUALIFIER_DATATYPE,
QPQ.QUALIFIER_ATTR_VALUE SETUP_VALUE_FROM,
QPQ.QUALIFIER_ATTR_VALUE_TO SETUP_VALUE_TO,
QPQ.COMPARISON_OPERATOR_CODE QUALIFIER_OPERATOR_TYPE,
QPA.PRICING_ATTRIBUTE_DATATYPE PRICING_ATTRIBUTE_DATATYPE,
decode(QPQ.list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE,
QCDT.CURRENCY_DETAIL_ID, /* sunilpandey */
QCDT.CURRENCY_HEADER_ID, /* vivek */
QCDT.SELLING_ROUNDING_FACTOR, /* vivek */
QPLINES.CURRENCY_CODE ORDER_CURRENCY, /* vivek */
QPLINES.PRICING_EFFECTIVE_DATE, /* vivek */
QPH.CURRENCY_CODE BASE_CURRENCY_CODE /* vivek */
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,QPLAT_Q.DERIVED_QUALIFIER_FLAG -- Added for TCA
,QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM
qp_npreq_lines_tmp QPLINES,
QP_QUALIFIERS QPQ,
qp_npreq_line_attrs_tmp QPLAT_Q,
qp_npreq_line_attrs_tmp QPLAT_PROD,
QP_PRICING_ATTRIBUTES QPA,
qp_npreq_line_attrs_tmp QPLAT_PRIC,
QP_LIST_LINES QPL,
QP_LIST_HEADERS_B QPH,
--QP_PRICE_REQ_SOURCES QPRS,
QP_PRICE_REQ_SOURCES_V QPRS, /* yangli */
QP_CURRENCY_DETAILS QCDT /* Vivek */
WHERE QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_NO
AND QPLINES.QUALIFIERS_EXIST_FLAG = G_YES
AND QPLINES.PRICING_ATTRS_EXIST_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
AND QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
AND (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
OR
QPA.COMPARISON_OPERATOR_CODE IN ('NOT =', G_OPERATOR_BETWEEN))
AND QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
AND QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.LINE_INDEX = QPLAT_PROD.LINE_INDEX
AND QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPA.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
/* Vivek AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE */
AND QPH.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID /* Vivek */
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND ( /* Vivek */
(qcdt.curr_attribute_context is null /* Vivek */
and not exists /* Vivek */
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1 /* Vivek */
where qcdt1.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt1.curr_attribute_context = pa_tmp.context /* Vivek */
and qcdt1.curr_attribute = pa_tmp.attribute /* Vivek */
and qcdt1.curr_attribute_value = pa_tmp.value_from /* Vivek */
and qcdt1.curr_attribute_type = pa_tmp.ATTRIBUTE_TYPE /* Vivek */
and qcdt1.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt1.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT1.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT1.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
) /* Vivek */
) /* Vivek */
OR /* Vivek */
(qcdt.curr_attribute_context is not null /* Vivek */
and qcdt.currency_detail_id = /* Vivek */
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3 /* Vivek */
where qcdt3.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt3.currency_header_id = qcdt.currency_header_id /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT3.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT3.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
and qcdt3.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2 /* Vivek */
where qcdt2.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt2.curr_attribute_context = pa_tmp1.context /* Vivek */
and qcdt2.curr_attribute = pa_tmp1.attribute /* Vivek */
and qcdt2.curr_attribute_value = pa_tmp1.value_from /* Vivek */
and qcdt2.curr_attribute_type = pa_tmp1.ATTRIBUTE_TYPE /* Vivek */
and qcdt2.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt2.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp1.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT2.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT2.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
)) /* Vivek */
) /* Vivek */
) /* Vivek */
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_Q.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
-- 3594459, context and attribute OR'd together
AND (QPQ.QUALIFIER_CONTEXT <> G_LIST_HEADER_CONTEXT
OR QPQ.QUALIFIER_ATTRIBUTE <> G_PRICELIST_ATTRIBUTE)
AND QPLAT_Q.CONTEXT = QPQ.QUALIFIER_CONTEXT
AND QPLAT_Q.ATTRIBUTE = QPQ.QUALIFIER_ATTRIBUTE
AND QPQ.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPQ.ACTIVE_FLAG = G_YES
AND ((QPLAT_Q.VALUE_FROM = QPQ.QUALIFIER_ATTR_VALUE --bug#1761272 Multiple NOT =
AND QPQ.COMPARISON_OPERATOR_CODE = '=')
OR (QPLAT_Q.VALUE_FROM <> QPQ.QUALIFIER_ATTR_VALUE
AND QPQ.COMPARISON_OPERATOR_CODE = 'NOT =')
OR
QPQ.COMPARISON_OPERATOR_CODE = G_OPERATOR_BETWEEN)
AND QPLAT_Q.LINE_INDEX = QPLINES.LINE_INDEX
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(QPQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_Q. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(QPLAT_Q.DERIVED_QUALIFIER_FLAG,'N')='N')
OR (QPLAT_Q.DERIVED_QUALIFIER_FLAG = 'Y' AND QPQ.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLINES QPLAT_PROD QPA QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) l_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
/* vivek QPH.ROUNDING_FACTOR, */
QCDT.ROUNDING_FACTOR, /* vivek */
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
NULL PRICING_ATTRIBUTE_CONTEXT,
NULL PRICING_ATTRIBUTE,
NULL PRICING_ATTR_VALUE_FROM,
NULL PRICING_SETUP_VALUE_FROM,
NULL PRICING_SETUP_VALUE_TO,
NULL PRICING_ATTRIBUTE_LEVEL,
NULL PRICING_ATTRIBUTE_TYPE,
NULL PRICING_OPERATOR_TYPE,
NULL QUALIFIER_ATTRIBUTE_CONTEXT,
NULL QUALIFIER_ATTRIBUTE,
NULL QUALIFIER_ATTR_VALUE_FROM,
NULL QUALIFIER_PRICING_ATTR_FLAG,
-9999 QUALIFIER_GROUPING_NO,
5000 QUALIFIER_PRECEDENCE,
NULL QUALIFIER_DATATYPE,
NULL SETUP_VALUE_FROM,
NULL SETUP_VALUE_TO,
NULL QUALIFIER_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_DATATYPE,
NULL QUALIFIER_TYPE,
QCDT.CURRENCY_DETAIL_ID, /* sunilpandey */
QCDT.CURRENCY_HEADER_ID, /* vivek */
QCDT.SELLING_ROUNDING_FACTOR, /* vivek */
QPLINES.CURRENCY_CODE ORDER_CURRENCY, /* vivek */
QPLINES.PRICING_EFFECTIVE_DATE, /* vivek */
QPH.CURRENCY_CODE BASE_CURRENCY_CODE /* vivek */
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,qplat_prod.DERIVED_QUALIFIER_FLAG -- Added for TCA
,QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM
qp_npreq_lines_tmp QPLINES,
qp_npreq_line_attrs_tmp qplat_prod,
QP_PRICING_ATTRIBUTES QPA,
QP_LIST_LINES QPL,
QP_LIST_HEADERS_B QPH,
--QP_PRICE_REQ_SOURCES qprs,
QP_PRICE_REQ_SOURCES_V qprs, /* yangli */
QP_CURRENCY_DETAILS QCDT /* Vivek */
WHERE QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
--AND QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND, QP_PREQ_GRP.G_YES_PROD_IND)
AND QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_IND
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_NO
AND QPLINES.QUALIFIERS_EXIST_FLAG = G_NO
--AND QPLINES.PRICING_ATTRS_EXIST_FLAG = G_NO
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPA.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
/* Vivek AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE */
AND QPH.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID /* Vivek */
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND ( /* Vivek */
(qcdt.curr_attribute_context is null /* Vivek */
and not exists /* Vivek */
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1 /* Vivek */
where qcdt1.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt1.curr_attribute_context = pa_tmp.context /* Vivek */
and qcdt1.curr_attribute = pa_tmp.attribute /* Vivek */
and qcdt1.curr_attribute_value = pa_tmp.value_from /* Vivek */
and qcdt1.curr_attribute_type = pa_tmp.ATTRIBUTE_TYPE /* Vivek */
and qcdt1.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt1.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT1.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT1.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
) /* Vivek */
) /* Vivek */
OR /* Vivek */
(qcdt.curr_attribute_context is not null /* Vivek */
and qcdt.currency_detail_id = /* Vivek */
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3 /* Vivek */
where qcdt3.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt3.currency_header_id = qcdt.currency_header_id /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT3.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT3.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
and qcdt3.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2 /* Vivek */
where qcdt2.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt2.curr_attribute_context = pa_tmp1.context /* Vivek */
and qcdt2.curr_attribute = pa_tmp1.attribute /* Vivek */
and qcdt2.curr_attribute_value = pa_tmp1.value_from /* Vivek */
and qcdt2.curr_attribute_type = pa_tmp1.ATTRIBUTE_TYPE /* Vivek */
and qcdt2.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt2.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp1.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT2.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT2.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
)) /* Vivek */
) /* Vivek */
) /* Vivek */
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLINES QPLAT_PROD QPA QPLAT_PRIC QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) INDEX(QPLAT_PRIC qp_preq_line_attrs_tmp_N2) l_list_cur */
QPLAT_PROD.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.LIST_LINE_NO,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.LIST_TYPE_CODE,
/* vivek QPH.ROUNDING_FACTOR, */
QCDT.ROUNDING_FACTOR, /* vivek */
QPH.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPLAT_PROD.APPLIED_FLAG,
QPLAT_PRIC.CONTEXT PRICING_ATTRIBUTE_CONTEXT,
QPLAT_PRIC.ATTRIBUTE PRICING_ATTRIBUTE,
QPLAT_PRIC.VALUE_FROM PRICING_ATTR_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_FROM PRICING_SETUP_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_TO PRICING_SETUP_VALUE_TO,
QPLAT_PRIC.ATTRIBUTE_LEVEL PRICING_ATTRIBUTE_LEVEL,
QPLAT_PRIC.ATTRIBUTE_TYPE PRICING_ATTRIBUTE_TYPE,
QPA.COMPARISON_OPERATOR_CODE PRICING_OPERATOR_TYPE,
NULL QUALIFIER_ATTRIBUTE_CONTEXT,
NULL QUALIFIER_ATTRIBUTE,
NULL QUALIFIER_ATTR_VALUE_FROM,
NULL QUALIFIER_PRICING_ATTR_FLAG,
-9999 QUALIFIER_GROUPING_NO,
5000 QUALIFIER_PRECEDENCE,
NULL QUALIFIER_DATATYPE,
NULL SETUP_VALUE_FROM,
NULL SETUP_VALUE_TO,
NULL QUALIFIER_OPERATOR_TYPE,
QPA.PRICING_ATTRIBUTE_DATATYPE PRICING_ATTRIBUTE_DATATYPE,
NULL QUALIFIER_TYPE,
QCDT.CURRENCY_DETAIL_ID, /* sunilpandey */
QCDT.CURRENCY_HEADER_ID, /* vivek */
QCDT.SELLING_ROUNDING_FACTOR, /* vivek */
QPLINES.CURRENCY_CODE ORDER_CURRENCY, /* vivek */
QPLINES.PRICING_EFFECTIVE_DATE, /* vivek */
QPH.CURRENCY_CODE BASE_CURRENCY_CODE /* vivek */
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
,qplat_pric.DERIVED_QUALIFIER_FLAG -- Added for TCA
,QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM
qp_npreq_lines_tmp qplines,
qp_npreq_line_attrs_tmp qplat_prod,
QP_PRICING_ATTRIBUTES qpa,
qp_npreq_line_attrs_tmp qplat_pric,
QP_LIST_LINES qpl,
QP_LIST_HEADERS_B qph,
--QP_PRICE_REQ_SOURCES qprs,
QP_PRICE_REQ_SOURCES_V qprs, /* yangli */
QP_CURRENCY_DETAILS QCDT /* Vivek */
WHERE QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_IND
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND QPLINES.VALIDATED_FLAG = G_NO
AND QPLINES.QUALIFIERS_EXIST_FLAG = G_NO
AND QPLINES.PRICING_ATTRS_EXIST_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPA.EXCLUDER_FLAG = G_NO
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
AND QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
AND (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
OR
QPA.COMPARISON_OPERATOR_CODE IN ('NOT =', G_OPERATOR_BETWEEN))
AND QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
AND QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PRIC.LINE_INDEX = QPLAT_PROD.LINE_INDEX
AND QPH.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPA.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
/* Vivek AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE */
AND QPH.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID /* Vivek */
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND ( /* Vivek */
(qcdt.curr_attribute_context is null /* Vivek */
and not exists /* Vivek */
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1 /* Vivek */
where qcdt1.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt1.curr_attribute_context = pa_tmp.context /* Vivek */
and qcdt1.curr_attribute = pa_tmp.attribute /* Vivek */
and qcdt1.curr_attribute_value = pa_tmp.value_from /* Vivek */
and qcdt1.curr_attribute_type = pa_tmp.ATTRIBUTE_TYPE /* Vivek */
and qcdt1.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt1.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT1.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT1.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
) /* Vivek */
) /* Vivek */
OR /* Vivek */
(qcdt.curr_attribute_context is not null /* Vivek */
and qcdt.currency_detail_id = /* Vivek */
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3 /* Vivek */
where qcdt3.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt3.currency_header_id = qcdt.currency_header_id /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT3.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT3.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
and qcdt3.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2 /* Vivek */
where qcdt2.curr_attribute_context IS NOT NULL /* Vivek */
and qcdt2.curr_attribute_context = pa_tmp1.context /* Vivek */
and qcdt2.curr_attribute = pa_tmp1.attribute /* Vivek */
and qcdt2.curr_attribute_value = pa_tmp1.value_from /* Vivek */
and qcdt2.curr_attribute_type = pa_tmp1.ATTRIBUTE_TYPE /* Vivek */
and qcdt2.to_currency_code = qcdt.to_currency_code /* Vivek */
and qcdt2.currency_header_id = qcdt.currency_header_id /* Vivek */
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED /* Vivek */
and pa_tmp1.line_index = qplines.line_index /* Vivek */
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN /* Vivek */
NVL(TRUNC(QCDT2.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
AND NVL(TRUNC(QCDT2.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
)) /* Vivek */
) /* Vivek */
) /* Vivek */
--AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
-- OR
-- QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
--AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 1,2;
SELECT /*+ dynamic_sampling(1) */ LINE_INDEX,
LINE_DETAIL_INDEX,
ATTRIBUTE_LEVEL,
ATTRIBUTE_TYPE,
CONTEXT,
ATTRIBUTE,
VALUE_FROM,
VALUE_TO,
PRODUCT_UOM_CODE,
COMPARISON_OPERATOR_TYPE_CODE COMPARISON_OPERATOR_TYPE
FROM qp_npreq_line_attrs_tmp a
WHERE PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND VALIDATED_FLAG = G_VALIDATED
AND CONTEXT = G_LIST_HEADER_CONTEXT
AND ATTRIBUTE IN (G_PROMOTION_ATTRIBUTE,G_QUAL_ATTRIBUTE2)
AND ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND EXISTS
(Select /*+ dynamic_sampling(1) */ 'X'
FROM qp_npreq_lines_tmp b
WHERE b.line_index = a.line_index
AND (b.price_flag = G_YES
OR
(b.price_flag = G_PHASE
AND
p_freeze_override_flag = G_YES)
)
AND b.line_type_code <> G_ORDER_LEVEL
);
SELECT /*+ ORDERED USE_NL(QPLAT_PROD QPA QPH QPL QPRS) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n7) l_other_list_cur */
QPLINES.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.LIST_PRICE,
QPL.LIST_PRICE_UOM_CODE,
QPL.PERCENT_PRICE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.OVERRIDE_FLAG,
QPL.PRINT_ON_INVOICE_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.BENEFIT_QTY,
QPL.BENEFIT_UOM_CODE,
QPL.LIST_LINE_NO,
QPL.ACCRUAL_FLAG,
QPL.ACCRUAL_CONVERSION_RATE,
QPL.ESTIM_ACCRUAL_RATE,
QPL.RECURRING_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.ASK_FOR_FLAG,
QPH.LIST_TYPE_CODE,
QPH.ROUNDING_FACTOR,
QPLAT_PROD.LINE_DETAIL_INDEX,
L_LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.VALUE_TO PRODUCT_ATTR_VALUE_TO,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPL.AUTOMATIC_FLAG APPLIED_FLAG, -- shu fix bug 1915355
QPLAT_PROD.COMPARISON_OPERATOR_TYPE_CODE PRODUCT_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_CONTEXT,
NULL PRICING_ATTRIBUTE,
NULL PRICING_ATTR_VALUE_FROM,
NULL PRICING_SETUP_VALUE_FROM,
NULL PRICING_SETUP_VALUE_TO,
NULL PRICING_ATTRIBUTE_LEVEL,
NULL PRICING_ATTRIBUTE_TYPE,
NULL PRICING_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_DATATYPE
FROM
qp_npreq_lines_tmp QPLINES,
qp_npreq_line_attrs_tmp QPLAT_PROD,
QP_PRICING_ATTRIBUTES QPA,
QP_LIST_HEADERS_B QPH,
QP_LIST_LINES QPL,
QP_PRICE_REQ_SOURCES_V QPRS
WHERE QPA.PRICING_PHASE_ID = P_PRICING_PHASE_ID
AND QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_IND, QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND,
QP_PREQ_GRP.G_YES_PROD_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_HDR_LINE_QUAL_IND)
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPLINES.PRICED_UOM_CODE = NVL(QPA.PRODUCT_UOM_CODE,QPLINES.PRICED_UOM_CODE)
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPH.LIST_HEADER_ID = L_LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPH.ASK_FOR_FLAG = G_YES
AND QPA.LIST_HEADER_ID = L_LIST_HEADER_ID
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
--AND QPL.PRICING_PHASE_ID = p_pricing_phase_id
--AND QPL.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_IND, QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND,
-- QP_PREQ_GRP.G_YES_PROD_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_HDR_LINE_QUAL_IND)
AND QPLAT_PROD.LINE_INDEX = L_LINE_INDEX
AND QPLINES.LINE_INDEX = L_LINE_INDEX
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPLINES.START_DATE_ACTIVE_FIRST,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.START_DATE_ACTIVE_SECOND,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_FIRST_TYPE,NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X'))
AND NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_SECOND_TYPE,NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X'))
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND ((QPH.CURRENCY_CODE IS NOT NULL AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE)
OR
QPH.CURRENCY_CODE IS NULL) -- optional currency
AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
OR
QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLAT_PROD QPA QPLAT_PRIC QPH QPL QPRS) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qplat_pric qp_preq_line_attrs_tmp_N2) index(qph qp_list_headers_b_n7) l_other_list_cur */
QPLINES.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.LIST_PRICE,
QPL.LIST_PRICE_UOM_CODE,
QPL.PERCENT_PRICE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.OVERRIDE_FLAG,
QPL.PRINT_ON_INVOICE_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.BENEFIT_QTY,
QPL.BENEFIT_UOM_CODE,
QPL.LIST_LINE_NO,
QPL.ACCRUAL_FLAG,
QPL.ACCRUAL_CONVERSION_RATE,
QPL.ESTIM_ACCRUAL_RATE,
QPL.RECURRING_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.ASK_FOR_FLAG,
QPH.LIST_TYPE_CODE,
QPH.ROUNDING_FACTOR,
QPLAT_PROD.LINE_DETAIL_INDEX,
L_LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.VALUE_TO PRODUCT_ATTR_VALUE_TO,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPL.AUTOMATIC_FLAG APPLIED_FLAG, -- shu fix bug 1915355
QPLAT_PROD.COMPARISON_OPERATOR_TYPE_CODE PRODUCT_OPERATOR_TYPE,
QPLAT_PRIC.CONTEXT PRICING_ATTRIBUTE_CONTEXT,
QPLAT_PRIC.ATTRIBUTE PRICING_ATTRIBUTE,
QPLAT_PRIC.VALUE_FROM PRICING_ATTR_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_FROM PRICING_SETUP_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_TO PRICING_SETUP_VALUE_TO,
QPLAT_PRIC.ATTRIBUTE_LEVEL PRICING_ATTRIBUTE_LEVEL,
QPLAT_PRIC.ATTRIBUTE_TYPE PRICING_ATTRIBUTE_TYPE,
QPA.COMPARISON_OPERATOR_CODE PRICING_OPERATOR_TYPE,
QPA.PRICING_ATTRIBUTE_DATATYPE PRICING_ATTRIBUTE_DATATYPE
FROM
qp_npreq_lines_tmp QPLINES,
qp_npreq_line_attrs_tmp QPLAT_PROD,
QP_PRICING_ATTRIBUTES QPA,
qp_npreq_line_attrs_tmp QPLAT_PRIC,
QP_LIST_HEADERS_B QPH,
QP_LIST_LINES QPL,
QP_PRICE_REQ_SOURCES QPRS
WHERE QPA.PRICING_PHASE_ID = p_pricing_phase_id
AND QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_IND, QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,
QP_PREQ_GRP.G_YES_PROD_PRIC_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PRIC_HDR_LINE_QUAL_IND)
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPLINES.PRICED_UOM_CODE = NVL(QPA.PRODUCT_UOM_CODE,QPLINES.PRICED_UOM_CODE)
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
AND QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
AND (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
OR
QPA.COMPARISON_OPERATOR_CODE = G_OPERATOR_BETWEEN)
AND QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
AND QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PROD.LINE_INDEX = QPLAT_PRIC.LINE_INDEX
AND QPH.LIST_HEADER_ID = L_LIST_HEADER_ID
AND QPH.ASK_FOR_FLAG = G_YES
AND QPA.LIST_HEADER_ID = L_LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
--AND QPL.PRICING_PHASE_ID = p_pricing_phase_id
--AND QPL.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_IND, QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,
-- QP_PREQ_GRP.G_YES_PROD_PRIC_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PRIC_HDR_LINE_QUAL_IND)
AND QPLAT_PROD.LINE_INDEX = L_LINE_INDEX
AND QPLINES.LINE_INDEX = L_LINE_INDEX
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPLINES.START_DATE_ACTIVE_FIRST,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.START_DATE_ACTIVE_SECOND,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_FIRST_TYPE,NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X'))
AND NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_SECOND_TYPE,NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X'))
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND ((QPH.CURRENCY_CODE IS NOT NULL AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE)
OR
QPH.CURRENCY_CODE IS NULL) -- optional currency
AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
OR
QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
ORDER BY 1,2;
SELECT /*+ ORDERED USE_NL(QPLAT_PROD QPA QPL QPH ) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n7) l_other_list_line_cur */
QPLINES.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.LIST_PRICE,
QPL.LIST_PRICE_UOM_CODE,
QPL.PERCENT_PRICE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.OVERRIDE_FLAG,
QPL.PRINT_ON_INVOICE_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.BENEFIT_QTY,
QPL.BENEFIT_UOM_CODE,
QPL.LIST_LINE_NO,
QPL.ACCRUAL_FLAG,
QPL.ACCRUAL_CONVERSION_RATE,
QPL.ESTIM_ACCRUAL_RATE,
QPL.RECURRING_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.ASK_FOR_FLAG,
QPH.LIST_TYPE_CODE,
QPH.ROUNDING_FACTOR,
QPLAT_PROD.LINE_DETAIL_INDEX,
QPL.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.VALUE_TO PRODUCT_ATTR_VALUE_TO,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPL.AUTOMATIC_FLAG APPLIED_FLAG, -- fix bug 1915355
QPLAT_PROD.COMPARISON_OPERATOR_TYPE_CODE PRODUCT_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_CONTEXT,
NULL PRICING_ATTRIBUTE,
NULL PRICING_ATTR_VALUE_FROM,
NULL PRICING_SETUP_VALUE_FROM,
NULL PRICING_SETUP_VALUE_TO,
NULL PRICING_ATTRIBUTE_LEVEL,
NULL PRICING_ATTRIBUTE_TYPE,
NULL PRICING_OPERATOR_TYPE,
NULL PRICING_ATTRIBUTE_DATATYPE
FROM
qp_npreq_lines_tmp QPLINES,
qp_npreq_line_attrs_tmp QPLAT_PROD,
QP_PRICING_ATTRIBUTES QPA,
QP_LIST_HEADERS_B QPH,
QP_LIST_LINES QPL,
QP_PRICE_REQ_SOURCES QPRS
WHERE QPA.PRICING_PHASE_ID = P_PRICING_PHASE_ID
AND QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_IND, QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND,
QP_PREQ_GRP.G_YES_PROD_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_HDR_LINE_QUAL_IND)
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPLINES.PRICED_UOM_CODE = NVL(QPA.PRODUCT_UOM_CODE,QPLINES.PRICED_UOM_CODE)
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPH.LIST_HEADER_ID = QPA.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPH.ASK_FOR_FLAG = G_YES
AND QPA.LIST_LINE_ID = L_LIST_LINE_ID
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
--AND QPL.PRICING_PHASE_ID = p_pricing_phase_id
--AND QPL.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_IND, QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND,
-- QP_PREQ_GRP.G_YES_PROD_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_HDR_LINE_QUAL_IND)
AND QPLAT_PROD.LINE_INDEX = L_LINE_INDEX
AND QPLINES.LINE_INDEX = L_LINE_INDEX
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPLINES.START_DATE_ACTIVE_FIRST,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.START_DATE_ACTIVE_SECOND,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_FIRST_TYPE,NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X'))
AND NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_SECOND_TYPE,NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X'))
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND ((QPH.CURRENCY_CODE IS NOT NULL AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE)
OR
QPH.CURRENCY_CODE IS NULL) -- optional currency
AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
OR
QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATP_PROD QPA QPLAT_PRIC QPH QPL QPRS) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qplat_pric qp_preq_line_attrs_tmp_N2) index(qph qp_list_headers_b_n7) l_other_list_line_cur */
QPLINES.LINE_INDEX,
QPL.LIST_LINE_ID,
QPL.ARITHMETIC_OPERATOR,
QPL.OPERAND,
QPL.PRICING_GROUP_SEQUENCE,
QPL.LIST_LINE_TYPE_CODE,
QPL.LIST_PRICE,
QPL.LIST_PRICE_UOM_CODE,
QPL.PERCENT_PRICE,
QPL.PRICING_PHASE_ID,
QPL.AUTOMATIC_FLAG,
QPL.OVERRIDE_FLAG,
QPL.PRINT_ON_INVOICE_FLAG,
QPL.MODIFIER_LEVEL_CODE,
QPL.BENEFIT_QTY,
QPL.BENEFIT_UOM_CODE,
QPL.LIST_LINE_NO,
QPL.ACCRUAL_FLAG,
QPL.ACCRUAL_CONVERSION_RATE,
QPL.ESTIM_ACCRUAL_RATE,
QPL.RECURRING_FLAG,
QPL.INCOMPATIBILITY_GRP_CODE,
QPL.PRICE_BY_FORMULA_ID,
QPL.PRODUCT_PRECEDENCE,
QPL.PRIMARY_UOM_FLAG,
QPA.PRODUCT_UOM_CODE,
QPA.EXCLUDER_FLAG,
QPH.ASK_FOR_FLAG,
QPH.LIST_TYPE_CODE,
QPH.ROUNDING_FACTOR,
QPLAT_PROD.LINE_DETAIL_INDEX,
QPL.LIST_HEADER_ID LIST_HEADER_ID,
QPLAT_PROD.CONTEXT PRODUCT_ATTRIBUTE_CONTEXT,
QPLAT_PROD.ATTRIBUTE PRODUCT_ATTRIBUTE,
QPLAT_PROD.VALUE_FROM PRODUCT_ATTR_VALUE_FROM,
QPLAT_PROD.VALUE_TO PRODUCT_ATTR_VALUE_TO,
QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
QPLAT_PROD.ATTRIBUTE_TYPE PRODUCT_ATTRIBUTE_TYPE,
QPL.AUTOMATIC_FLAG APPLIED_FLAG, -- shu fix bug 1915355
QPLAT_PROD.COMPARISON_OPERATOR_TYPE_CODE PRODUCT_OPERATOR_TYPE,
QPLAT_PRIC.CONTEXT PRICING_ATTRIBUTE_CONTEXT,
QPLAT_PRIC.ATTRIBUTE PRICING_ATTRIBUTE,
QPLAT_PRIC.VALUE_FROM PRICING_ATTR_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_FROM PRICING_SETUP_VALUE_FROM,
QPA.PRICING_ATTR_VALUE_TO PRICING_SETUP_VALUE_TO,
QPLAT_PRIC.ATTRIBUTE_LEVEL PRICING_ATTRIBUTE_LEVEL,
QPLAT_PRIC.ATTRIBUTE_TYPE PRICING_ATTRIBUTE_TYPE,
QPA.COMPARISON_OPERATOR_CODE PRICING_OPERATOR_TYPE,
QPA.PRICING_ATTRIBUTE_DATATYPE PRICING_ATTRIBUTE_DATATYPE
FROM
qp_npreq_lines_tmp QPLINES,
qp_npreq_line_attrs_tmp QPLAT_PROD,
QP_PRICING_ATTRIBUTES QPA,
qp_npreq_line_attrs_tmp QPLAT_PRIC,
QP_LIST_HEADERS_B QPH,
QP_LIST_LINES QPL,
QP_PRICE_REQ_SOURCES QPRS
WHERE QPA.PRICING_PHASE_ID = p_pricing_phase_id
AND QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_IND, QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,
QP_PREQ_GRP.G_YES_PROD_PRIC_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PRIC_HDR_LINE_QUAL_IND)
AND QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
AND QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
AND QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
AND QPLINES.PRICED_UOM_CODE = NVL(QPA.PRODUCT_UOM_CODE,QPLINES.PRICED_UOM_CODE)
AND (QPLINES.PRICE_FLAG = G_YES
OR
(QPLINES.PRICE_FLAG = G_PHASE
AND
P_FREEZE_OVERRIDE_FLAG = G_YES))
AND QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
AND QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
AND (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
OR
QPA.COMPARISON_OPERATOR_CODE = G_OPERATOR_BETWEEN)
AND QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
AND QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND QPLAT_PROD.LINE_INDEX = QPLAT_PRIC.LINE_INDEX
AND QPH.LIST_HEADER_ID = QPA.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
-- AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPH.ASK_FOR_FLAG = G_YES
AND QPA.LIST_LINE_ID = L_LIST_LINE_ID
AND QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
AND QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
--AND QPL.PRICING_PHASE_ID = p_pricing_phase_id
--AND QPL.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_IND, QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,
-- QP_PREQ_GRP.G_YES_PROD_PRIC_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PRIC_HDR_LINE_QUAL_IND)
AND QPLAT_PROD.LINE_INDEX = L_LINE_INDEX
AND QPLINES.LINE_INDEX = L_LINE_INDEX
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(QPLINES.START_DATE_ACTIVE_FIRST,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.START_DATE_ACTIVE_SECOND,TRUNC(SYSDATE)) BETWEEN
NVL(QPH.START_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) )) AND
NVL(QPH.END_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
TRUNC(SYSDATE) ))
AND NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_FIRST_TYPE,NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X'))
AND NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X') =
NVL(QPH.ACTIVE_DATE_SECOND_TYPE,NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X'))
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND ((QPH.CURRENCY_CODE IS NOT NULL AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE)
OR
QPH.CURRENCY_CODE IS NULL) -- optional currency
AND (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
OR
QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
AND QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
AND QPLINES.REQUEST_TYPE_CODE = QPRS.REQUEST_TYPE_CODE
AND QPH.ACTIVE_FLAG = G_YES
AND QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
ORDER BY 1,2;
SELECT 'X'
FROM qp_npreq_lines_tmp A
WHERE PROCESSED_CODE IN (G_NO_LIST_PASSED,G_STS_LHS_NOT_FOUND)
AND LINE_TYPE_CODE <> G_ORDER_LEVEL
AND (instr(PROCESS_STATUS,'FREEGOOD')=0); -- bug 2693700
SELECT 'X'
FROM qp_npreq_lines_tmp
WHERE PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND LINE_TYPE_CODE <> G_ORDER_LEVEL
AND (instr(PROCESS_STATUS,'FREEGOOD')=0); -- bug 2693700
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,LINE_INDEX,1
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,PRICING_PHASE_ID,2
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,ASK_FOR_FLAG,3
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,CREATED_FROM_LIST_LINE_TYPE,4
*/
CURSOR l_chk_deleted_pbh_cur(p_line_index IN PLS_INTEGER,
p_pricing_phase_id NUMBER) IS
SELECT 'X'
FROM qp_npreq_ldets_tmp
WHERE created_from_list_line_type = G_PRICE_BREAK_TYPE
AND line_index = p_line_index
AND pricing_phase_id = p_pricing_phase_id
AND pricing_status_code <> G_STATUS_NEW;
engine_debug('List line id selected from asked for prom l_other_list_cur : '||K.list_line_id );
INSERT_LDETS(P_LINE_DETAIL_INDEX => L_LINE_DETAIL_INDEX,
P_LINE_DETAIL_TYPE_CODE => 'NULL',
P_LINE_INDEX => J.LINE_INDEX,
P_CREATED_FROM_LIST_HEADER_ID => L_LIST_HEADER_ID,
P_CREATED_FROM_LIST_LINE_ID => K.LIST_LINE_ID,
P_CREATED_FROM_LIST_TYPE_CODE => K.LIST_TYPE_CODE,
P_CREATED_FROM_SQL => 'LHS_MODIFIER ',
P_PRICING_PHASE_ID => K.PRICING_PHASE_ID,
P_CREATED_FROM_LIST_LINE_TYPE => K.LIST_LINE_TYPE_CODE,
P_PRICING_GROUP_SEQUENCE => K.PRICING_GROUP_SEQUENCE,
P_OPERAND_CALCULATION_CODE => K.ARITHMETIC_OPERATOR,
P_OPERAND_VALUE => K.OPERAND,
P_PRICING_STATUS_CODE => G_STATUS_NEW,
P_PROCESSED_FLAG => G_NOT_PROCESSED,
P_AUTOMATIC_FLAG => K.AUTOMATIC_FLAG,
P_APPLIED_FLAG => K.APPLIED_FLAG, -- fix bug 1915355
P_OVERRIDE_FLAG => K.OVERRIDE_FLAG,
P_PRINT_ON_INVOICE_FLAG => K.PRINT_ON_INVOICE_FLAG,
P_MODIFIER_LEVEL_CODE => K.MODIFIER_LEVEL_CODE,
P_BENEFIT_QTY => K.BENEFIT_QTY,
P_BENEFIT_UOM_CODE => K.BENEFIT_UOM_CODE,
P_LIST_LINE_NO => K.LIST_LINE_NO,
P_ACCRUAL_FLAG => K.ACCRUAL_FLAG,
P_ACCRUAL_CONVERSION_RATE => K.ACCRUAL_CONVERSION_RATE,
P_ESTIM_ACCRUAL_RATE => K.ESTIM_ACCRUAL_RATE,
P_RECURRING_FLAG => K.RECURRING_FLAG,
P_INCOMPATABLILITY_GRP_CODE => K.INCOMPATIBILITY_GRP_CODE,
P_PRICE_FORMULA_ID => K.PRICE_BY_FORMULA_ID,
P_PRODUCT_PRECEDENCE => K.PRODUCT_PRECEDENCE,
P_PRIMARY_UOM_FLAG => K.PRIMARY_UOM_FLAG,
P_ASK_FOR_FLAG => K.ASK_FOR_FLAG,
P_ROUNDING_FACTOR => K.ROUNDING_FACTOR,
X_STATUS_CODE => L_STATUS_CODE,
X_STATUS_TEXT => L_STATUS_TEXT);
G_PRICING_STATUS_TEXT_tbl(M) :='INSERTED IN VALIDATED ASKED FOR PROMOTION SEARCH';
G_PRICING_STATUS_TEXT_tbl(M) :='INSERTED IN VALIDATED ASKED FOR PROMOTION SEARCH';
engine_debug('List line id selected from asked for prom l_other_list_cur : '||K.list_line_id );
INSERT_LDETS(P_LINE_DETAIL_INDEX => L_LINE_DETAIL_INDEX,
P_LINE_DETAIL_TYPE_CODE => 'NULL',
P_LINE_INDEX => J.LINE_INDEX,
P_CREATED_FROM_LIST_HEADER_ID => K.LIST_HEADER_ID,
P_CREATED_FROM_LIST_LINE_ID => K.LIST_LINE_ID,
P_CREATED_FROM_LIST_TYPE_CODE => K.LIST_TYPE_CODE,
P_CREATED_FROM_SQL => 'LHS_MODIFIER ',
P_PRICING_PHASE_ID => K.PRICING_PHASE_ID,
P_CREATED_FROM_LIST_LINE_TYPE => K.LIST_LINE_TYPE_CODE,
P_PRICING_GROUP_SEQUENCE => K.PRICING_GROUP_SEQUENCE,
P_OPERAND_CALCULATION_CODE => K.ARITHMETIC_OPERATOR,
P_OPERAND_VALUE => K.OPERAND,
P_PRICING_STATUS_CODE => G_STATUS_NEW,
P_PROCESSED_FLAG => G_NOT_PROCESSED,
P_AUTOMATIC_FLAG => K.AUTOMATIC_FLAG,
P_APPLIED_FLAG => K.APPLIED_FLAG,
P_OVERRIDE_FLAG => K.OVERRIDE_FLAG,
P_PRINT_ON_INVOICE_FLAG => K.PRINT_ON_INVOICE_FLAG,
P_MODIFIER_LEVEL_CODE => K.MODIFIER_LEVEL_CODE,
P_BENEFIT_QTY => K.BENEFIT_QTY,
P_BENEFIT_UOM_CODE => K.BENEFIT_UOM_CODE,
P_LIST_LINE_NO => K.LIST_LINE_NO,
P_ACCRUAL_FLAG => K.ACCRUAL_FLAG,
P_ACCRUAL_CONVERSION_RATE => K.ACCRUAL_CONVERSION_RATE,
P_ESTIM_ACCRUAL_RATE => K.ESTIM_ACCRUAL_RATE,
P_RECURRING_FLAG => K.RECURRING_FLAG,
P_INCOMPATABLILITY_GRP_CODE => K.INCOMPATIBILITY_GRP_CODE,
P_PRICE_FORMULA_ID => K.PRICE_BY_FORMULA_ID,
P_PRODUCT_PRECEDENCE => K.PRODUCT_PRECEDENCE,
P_PRIMARY_UOM_FLAG => K.PRIMARY_UOM_FLAG,
P_ASK_FOR_FLAG => K.ASK_FOR_FLAG,
P_ROUNDING_FACTOR => K.ROUNDING_FACTOR,
X_STATUS_CODE => L_STATUS_CODE,
X_STATUS_TEXT => L_STATUS_TEXT);
G_PRICING_STATUS_TEXT_tbl(M) :='INSERTED IN VALIDATED ASKED FOR PROMOTION SEARCH';
G_PRICING_STATUS_TEXT_tbl(M) :='INSERTED IN VALIDATED ASKED FOR PROMOTION SEARCH';
INSERT_LINE_ATTRS2
(p_LINE_INDEX_tbl =>G_LINE_INDEX_tbl,
p_LINE_DETAIL_INDEX_tbl =>G_LINE_DETAIL_INDEX_tbl,
p_ATTRIBUTE_LEVEL_tbl =>G_ATTRIBUTE_LEVEL_tbl,
p_ATTRIBUTE_TYPE_tbl =>G_ATTRIBUTE_TYPE_tbl,
p_LIST_HEADER_ID_tbl =>G_LIST_HEADER_ID_tbl,
p_LIST_LINE_ID_tbl =>G_LIST_LINE_ID_tbl,
p_CONTEXT_tbl =>G_CONTEXT_tbl,
p_ATTRIBUTE_tbl =>G_ATTRIBUTE_tbl,
p_VALUE_FROM_tbl =>G_VALUE_FROM_tbl,
p_SETUP_VALUE_FROM_tbl =>G_SETUP_VALUE_FROM_tbl,
p_VALUE_TO_tbl =>G_VALUE_TO_tbl,
p_SETUP_VALUE_TO_tbl =>G_SETUP_VALUE_TO_tbl,
p_GROUPING_NUMBER_tbl => G_GROUPING_NUMBER_tbl,
p_NO_QUALIFIERS_IN_GRP_tbl =>G_NO_QUALIFIERS_IN_GRP_tbl,
p_COMPARISON_OPERATOR_TYPE_tbl =>G_COMPARISON_OPERATOR_TYPE_tbl,
p_VALIDATED_FLAG_tbl =>G_VALIDATED_FLAG_tbl,
p_APPLIED_FLAG_tbl =>G_APPLIED_FLAG_tbl,
p_PRICING_STATUS_CODE_tbl =>G_PRICING_STATUS_CODE_tbl,
p_PRICING_STATUS_TEXT_tbl =>G_PRICING_STATUS_TEXT_tbl,
p_QUALIFIER_PRECEDENCE_tbl =>G_QUALIFIER_PRECEDENCE_tbl,
p_DATATYPE_tbl =>G_DATATYPE_tbl,
p_PRICING_ATTR_FLAG_tbl =>G_PRICING_ATTR_FLAG_tbl,
p_QUALIFIER_TYPE_tbl =>G_QUALIFIER_TYPE_TBL,
p_product_uom_code_tbl =>G_PRODUCT_UOM_CODE_TBL,
p_excluder_flag_tbl =>G_EXCLUDER_FLAG_TBL,
p_PRICING_PHASE_ID_TBL =>G_PRICING_PHASE_ID_TBL_A,
p_INCOMPATABILITY_GRP_CODE_TBL =>G_INCOMP_GRP_CODE_TBL_A,
p_LINE_DETAIL_TYPE_CODE_TBL =>G_LINE_DETAIL_TYPE_CODE_TBL_A,
p_MODIFIER_LEVEL_CODE_TBL =>G_MODIFIER_LEVEL_CODE_TBL_A,
p_PRIMARY_UOM_FLAG_TBL =>G_PRIMARY_UOM_FLAG_TBL_A,
x_status_code =>l_status_code,
x_status_text =>l_status_text);
G_LINE_INDEX_TBL_P.delete;
G_LIST_LINE_ID_TBL_P.delete;
G_LIST_HEADER_ID_TBL_P.delete;
G_OPER_CALCULATION_CODE_TBL_P.delete;
G_OPERAND_VALUE_TBL_P.delete;
G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
G_LIST_LINE_TYPE_TBL_P.delete;
G_PRICING_PHASE_ID_TBL_P.delete;
G_AUTOMATIC_FLAG_TBL_P.delete;
G_INCOMP_GRP_CODE_TBL_P.delete;
G_PRICE_FORMULA_ID_TBL_P.delete;
G_PRODUCT_PRECEDENCE_TBL_P.delete;
G_PRIMARY_UOM_FLAG_TBL_P.delete;
G_MODIFIER_LEVEL_CODE_TBL_P.delete;
G_LIST_LINE_NO_TBL_P.delete;
G_PRODUCT_UOM_CODE_TBL_P.delete;
G_EXCLUDER_FLAG_TBL_P.delete;
G_LIST_TYPE_CODE_TBL_P.delete;
G_ROUNDING_FACTOR_TBL_P.delete;
G_CONTEXT_TBL_P.delete;
G_ATTRIBUTE_TBL_P.delete;
G_VALUE_FROM_TBL_P.delete;
G_ATTRIBUTE_LEVEL_TBL_P.delete;
G_ATTRIBUTE_TYPE_TBL_P.delete;
G_APPLIED_FLAG_TBL_P.delete;
G_CONTEXT_TBL_PR.delete;
G_ATTRIBUTE_TBL_PR.delete;
G_VALUE_FROM_TBL_PR.delete;
G_SETUP_VALUE_FROM_TBL_PR.delete;
G_SETUP_VALUE_TO_TBL_PR.delete;
G_ATTRIBUTE_LEVEL_TBL_PR.delete;
G_ATTRIBUTE_TYPE_TBL_PR.delete;
G_OPERATOR_TYPE_TBL_PR.delete;
G_DATATYPE_TBL_PR.delete;
G_BREAK_UOM_TBL_P.delete; /* Proration */
G_BREAK_CONTEXT_TBL_P.delete; /* Proration */
G_BREAK_ATTRIBUTE_TBL_P.delete; /* Proration */
G_DERIVED_QUALIFIER_FLAG_TBL_Q.delete; -- Added for TCA
G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
engine_debug('cursor l_list_cur_currency-multi-currency TRUE - delete tables');
G_CURRENCY_DETAIL_ID_TBL_P.delete; /* sunilpandey */
G_CURRENCY_HEADER_ID_TBL_P.delete; /* vivek */
G_SELLING_ROUNDING_TBL_P.delete; /* vivek */
G_ORDER_CURRENCY_TBL_P.delete; /* vivek */
G_PRICING_EFFECTIVE_DATE_TBL_P.delete; /* vivek */
G_BASE_CURRENCY_CODE_TBL_P.delete; /* vivek */
G_PRICING_STATUS_TEXT_LD_TBL(M) :='INSERTED IN L_LIST_CUR';
G_CREATED_FROM_SQL_TBL(M) :='INSERTED IN L_LIST_CUR';
G_PRICING_STATUS_TEXT_tbl(K) :='INSERTED IN L_LIST_CUR';
G_PRICING_STATUS_TEXT_tbl(K) :='INSERTED IN L_LIST_CUR';
engine_debug('cursor l_list_cur_currency-multi-currency TRUE - insert_ldets2');
INSERT_LDETS_PRICE_LIST_MULT( p_LINE_DETAIL_index => G_LINE_DETAIL_INDEX_LD_TBL,
p_LINE_DETAIL_TYPE_CODE => G_LINE_DETAIL_TYPE_CODE_TBL,
p_PRICE_BREAK_TYPE_CODE => G_PRICE_BREAK_TYPE_CODE_TBL,
p_LINE_INDEX => G_LINE_INDEX_LD_TBL,
p_CREATED_FROM_LIST_HEADER_ID =>G_LIST_HEADER_ID_LD_TBL,
p_CREATED_FROM_LIST_LINE_ID =>G_LIST_LINE_ID_LD_TBL,
p_CREATED_FROM_LIST_LINE_TYPE =>G_LIST_LINE_TYPE_TBL,
p_CREATED_FROM_LIST_TYPE_CODE =>G_LIST_TYPE_CODE_TBL,
p_CREATED_FROM_SQL =>G_CREATED_FROM_SQL_TBL,
p_PRICING_GROUP_SEQUENCE =>G_PRICING_GROUP_SEQUENCE_TBL,
P_PRICING_PHASE_ID =>G_PRICING_PHASE_ID_TBL,
p_OPERAND_CALCULATION_CODE =>G_OPERAND_CALCULATION_CODE_TBL,
p_OPERAND_VALUE =>G_OPERAND_VALUE_TBL,
p_PRICE_FORMULA_ID =>G_PRICE_FORMULA_ID_TBL,
p_PRICING_STATUS_CODE =>G_PRICING_STATUS_CODE_LD_TBL,
p_PRICING_STATUS_TEXT =>G_PRICING_STATUS_TEXT_LD_TBL,
p_PRODUCT_PRECEDENCE =>G_PRODUCT_PRECEDENCE_TBL ,
p_INCOMPATABLILITY_GRP_CODE =>G_INCOMP_GRP_CODE_TBL,
p_PROCESSED_FLAG =>G_PROCESSED_FLAG_LD_TBL,
p_APPLIED_FLAG =>G_APPLIED_FLAG_LD_TBL,
p_AUTOMATIC_FLAG =>G_AUTOMATIC_FLAG_TBL,
p_PRIMARY_UOM_FLAG =>G_PRIMARY_UOM_FLAG_TBL,
p_MODIFIER_LEVEL_CODE =>G_MODIFIER_LEVEL_CODE_TBL,
p_LIST_LINE_NO =>G_LIST_LINE_NO_TBL,
p_ROUNDING_FACTOR =>G_ROUNDING_FACTOR_TBL,
P_CURRENCY_DETAIL_ID =>G_CURRENCY_DETAIL_ID_TBL, /* sunilpandey */
P_CURRENCY_HEADER_ID =>G_CURRENCY_HEADER_ID_TBL, /* vivek */
P_SELLING_ROUNDING_FACTOR =>G_SELLING_ROUNDING_TBL, /* vivek */
P_ORDER_CURRENCY =>G_ORDER_CURRENCY_TBL, /* vivek */
P_PRICING_EFFECTIVE_DATE =>G_PRICING_EFFECTIVE_DATE_TBL, /* vivek */
P_BASE_CURRENCY_CODE =>G_BASE_CURRENCY_CODE_TBL, /* vivek */
P_BREAK_UOM_CODE =>G_BREAK_UOM_TBL, /* Proration */
P_BREAK_UOM_CONTEXT =>G_BREAK_CONTEXT_TBL, /* Proration */
P_BREAK_UOM_ATTRIBUTE =>G_BREAK_ATTRIBUTE_TBL, /* Proration */
x_status_code =>l_status_code,
x_status_text =>l_status_text
);
INSERT_LDETS_PRICE_LIST_PVT(
p_LINE_DETAIL_index => G_LINE_DETAIL_INDEX_LD_TBL,
p_LINE_DETAIL_TYPE_CODE => G_LINE_DETAIL_TYPE_CODE_TBL,
p_PRICE_BREAK_TYPE_CODE => G_PRICE_BREAK_TYPE_CODE_TBL,
p_LINE_INDEX => G_LINE_INDEX_LD_TBL,
p_CREATED_FROM_LIST_HEADER_ID =>G_LIST_HEADER_ID_LD_TBL,
p_CREATED_FROM_LIST_LINE_ID =>G_LIST_LINE_ID_LD_TBL,
p_CREATED_FROM_LIST_LINE_TYPE =>G_LIST_LINE_TYPE_TBL,
p_CREATED_FROM_LIST_TYPE_CODE =>G_LIST_TYPE_CODE_TBL,
p_CREATED_FROM_SQL =>G_CREATED_FROM_SQL_TBL,
p_PRICING_GROUP_SEQUENCE =>G_PRICING_GROUP_SEQUENCE_TBL,
P_PRICING_PHASE_ID =>G_PRICING_PHASE_ID_TBL,
p_OPERAND_CALCULATION_CODE =>G_OPERAND_CALCULATION_CODE_TBL,
p_OPERAND_VALUE =>G_OPERAND_VALUE_TBL,
p_PRICE_FORMULA_ID =>G_PRICE_FORMULA_ID_TBL,
p_PRICING_STATUS_CODE =>G_PRICING_STATUS_CODE_LD_TBL,
p_PRICING_STATUS_TEXT =>G_PRICING_STATUS_TEXT_LD_TBL,
p_PRODUCT_PRECEDENCE =>G_PRODUCT_PRECEDENCE_TBL ,
p_INCOMPATABLILITY_GRP_CODE =>G_INCOMP_GRP_CODE_TBL,
p_PROCESSED_FLAG =>G_PROCESSED_FLAG_LD_TBL,
p_APPLIED_FLAG =>G_APPLIED_FLAG_LD_TBL,
p_AUTOMATIC_FLAG =>G_AUTOMATIC_FLAG_TBL,
p_PRIMARY_UOM_FLAG =>G_PRIMARY_UOM_FLAG_TBL,
p_MODIFIER_LEVEL_CODE =>G_MODIFIER_LEVEL_CODE_TBL,
p_LIST_LINE_NO =>G_LIST_LINE_NO_TBL,
p_ROUNDING_FACTOR =>G_ROUNDING_FACTOR_TBL,
P_BREAK_UOM_CODE =>G_BREAK_UOM_TBL, /* Proration */
P_BREAK_UOM_CONTEXT =>G_BREAK_CONTEXT_TBL, /* Proration */
P_BREAK_UOM_ATTRIBUTE =>G_BREAK_ATTRIBUTE_TBL, /* Proration */
x_status_code =>l_status_code,
x_status_text =>l_status_text
);
INSERT_PRICE_LIST_ATTRS
( p_LINE_INDEX_tbl =>G_LINE_INDEX_tbl,
p_LINE_DETAIL_INDEX_tbl =>G_LINE_DETAIL_INDEX_tbl,
p_ATTRIBUTE_LEVEL_tbl =>G_ATTRIBUTE_LEVEL_tbl,
p_ATTRIBUTE_TYPE_tbl =>G_ATTRIBUTE_TYPE_tbl,
p_LIST_HEADER_ID_tbl =>G_LIST_HEADER_ID_tbl,
p_LIST_LINE_ID_tbl =>G_LIST_LINE_ID_tbl,
p_CONTEXT_tbl =>G_CONTEXT_tbl,
p_ATTRIBUTE_tbl =>G_ATTRIBUTE_tbl,
p_VALUE_FROM_tbl =>G_VALUE_FROM_tbl,
p_SETUP_VALUE_FROM_tbl =>G_SETUP_VALUE_FROM_tbl,
p_SETUP_VALUE_TO_tbl =>G_SETUP_VALUE_TO_tbl,
p_GROUPING_NUMBER_tbl => G_GROUPING_NUMBER_tbl,
p_COMPARISON_OPERATOR_TYPE_tbl =>G_COMPARISON_OPERATOR_TYPE_tbl,
p_VALIDATED_FLAG_tbl =>G_VALIDATED_FLAG_tbl,
p_APPLIED_FLAG_tbl =>G_APPLIED_FLAG_tbl,
p_PRICING_STATUS_CODE_tbl =>G_PRICING_STATUS_CODE_tbl,
p_PRICING_STATUS_TEXT_tbl =>G_PRICING_STATUS_TEXT_tbl,
p_QUALIFIER_PRECEDENCE_tbl =>G_QUALIFIER_PRECEDENCE_tbl,
p_DATATYPE_tbl =>G_DATATYPE_tbl,
p_PRICING_ATTR_FLAG_tbl =>G_PRICING_ATTR_FLAG_tbl,
p_QUALIFIER_TYPE_tbl =>G_QUALIFIER_TYPE_TBL,
p_PRODUCT_UOM_CODE_TBL =>G_PRODUCT_UOM_CODE_TBL,
p_EXCLUDER_FLAG_TBL =>G_EXCLUDER_FLAG_TBL,
p_PRICING_PHASE_ID_TBL =>G_PRICING_PHASE_ID_TBL_A,
p_INCOMPATABILITY_GRP_CODE_TBL =>G_INCOMP_GRP_CODE_TBL_A,
p_LINE_DETAIL_TYPE_CODE_TBL =>G_LINE_DETAIL_TYPE_CODE_TBL_A,
p_MODIFIER_LEVEL_CODE_TBL =>G_MODIFIER_LEVEL_CODE_TBL_A,
p_PRIMARY_UOM_FLAG_TBL =>G_PRIMARY_UOM_FLAG_TBL_A,
x_status_code =>l_status_code,
x_status_text =>l_status_text);
G_LINE_INDEX_TBL_P.delete;
G_LIST_LINE_ID_TBL_P.delete;
G_OPER_CALCULATION_CODE_TBL_P.delete;
G_OPERAND_VALUE_TBL_P.delete;
G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
G_LIST_LINE_TYPE_TBL_P.delete;
G_PRICING_PHASE_ID_TBL_P.delete;
G_AUTOMATIC_FLAG_TBL_P.delete;
G_OVERRIDE_FLAG_TBL_P.delete;
G_PRINT_ON_INVOICE_FLAG_TBL_P.delete;
G_INCOMP_GRP_CODE_TBL_P.delete;
G_PRICE_FORMULA_ID_TBL_P.delete;
G_PRODUCT_PRECEDENCE_TBL_P.delete;
G_PRIMARY_UOM_FLAG_TBL_P.delete;
G_MODIFIER_LEVEL_CODE_TBL_P.delete;
G_LIST_LINE_NO_TBL_P.delete;
G_PRODUCT_UOM_CODE_TBL_P.delete;
G_EXCLUDER_FLAG_TBL_P.delete;
G_LIST_TYPE_CODE_TBL_P.delete;
G_ROUNDING_FACTOR_TBL_P.delete;
G_LIST_HEADER_ID_TBL_P.delete;
G_CONTEXT_TBL_P.delete;
G_ATTRIBUTE_TBL_P.delete;
G_VALUE_FROM_TBL_P.delete;
G_ATTRIBUTE_LEVEL_TBL_P.delete;
G_ATTRIBUTE_TYPE_TBL_P.delete;
G_APPLIED_FLAG_TBL_P.delete;
G_CONTEXT_TBL_PR.delete;
G_ATTRIBUTE_TBL_PR.delete;
G_VALUE_FROM_TBL_PR.delete;
G_SETUP_VALUE_FROM_TBL_PR.delete;
G_SETUP_VALUE_TO_TBL_PR.delete;
G_ATTRIBUTE_LEVEL_TBL_PR.delete;
G_ATTRIBUTE_TYPE_TBL_PR.delete;
G_OPERATOR_TYPE_TBL_PR.delete;
G_CONTEXT_TBL_Q.delete;
G_ATTRIBUTE_TBL_Q.delete;
G_VALUE_FROM_TBL_Q.delete;
G_PRICING_ATTR_FLAG_TBL_Q.delete;
G_GROUPING_NO_TBL_Q.delete;
G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
G_DATATYPE_TBL_Q.delete;
G_SETUP_VALUE_FROM_TBL_Q.delete;
G_SETUP_VALUE_TO_TBL_Q.delete;
G_OPERATOR_TYPE_TBL_Q .delete;
G_DATATYPE_TBL_PR.delete;
G_QUALIFIER_TYPE_TBL_Q.delete;
G_BREAK_UOM_TBL_P.delete; /* Proration */
G_BREAK_CONTEXT_TBL_P.delete; /* Proration */
G_BREAK_ATTRIBUTE_TBL_P.delete; /* Proration */
G_PRICE_BREAK_TYPE_CODE_TBL_P.delete; --[julin] for price book
engine_debug('cursor l_list_qual_cur_currency-multi-currency TRUE - delete tables');
G_CURRENCY_DETAIL_ID_TBL_P.delete; /* sunilpandey */
G_CURRENCY_HEADER_ID_TBL_P.delete; /* vivek */
G_SELLING_ROUNDING_TBL_P.delete; /* vivek */
G_ORDER_CURRENCY_TBL_P.delete; /* vivek */
G_PRICING_EFFECTIVE_DATE_TBL_P.delete; /* vivek */
G_BASE_CURRENCY_CODE_TBL_P.delete; /* vivek */
engine_debug('Inserting List Line #102');
G_PRICING_STATUS_TEXT_LD_TBL(M) :='INSERTED IN L_LIST_QUAL_CUR';
G_CREATED_FROM_SQL_TBL(M) :='INSERTED_IN_L_LIST_QUAL_CUR';
G_PRICING_STATUS_TEXT_tbl(K) := 'INSERTED IN L_LIST_QUAL_CUR';
G_PRICING_STATUS_TEXT_tbl(K) :='INSERTED IN L_LIST_QUAL_CUR';
G_PRICING_STATUS_TEXT_tbl(K) :='INSERTED IN L_LIST_QUAL_CUR';
engine_debug('cursor l_list_qual_cur_currency-multi-currency TRUE - insert_ldets2');
INSERT_LDETS_PRICE_LIST_MULT( p_LINE_DETAIL_index => G_LINE_DETAIL_INDEX_LD_TBL,
p_LINE_DETAIL_TYPE_CODE => G_LINE_DETAIL_TYPE_CODE_TBL,
p_PRICE_BREAK_TYPE_CODE => G_PRICE_BREAK_TYPE_CODE_TBL,
p_LINE_INDEX => G_LINE_INDEX_LD_TBL,
p_CREATED_FROM_LIST_HEADER_ID =>G_LIST_HEADER_ID_LD_TBL,
p_CREATED_FROM_LIST_LINE_ID =>G_LIST_LINE_ID_LD_TBL,
p_CREATED_FROM_LIST_LINE_TYPE =>G_LIST_LINE_TYPE_TBL,
p_CREATED_FROM_LIST_TYPE_CODE =>G_LIST_TYPE_CODE_TBL,
p_CREATED_FROM_SQL =>G_CREATED_FROM_SQL_TBL,
p_PRICING_GROUP_SEQUENCE =>G_PRICING_GROUP_SEQUENCE_TBL,
P_PRICING_PHASE_ID =>G_PRICING_PHASE_ID_TBL,
p_OPERAND_CALCULATION_CODE =>G_OPERAND_CALCULATION_CODE_TBL,
p_OPERAND_VALUE =>G_OPERAND_VALUE_TBL,
p_PRICE_FORMULA_ID =>G_PRICE_FORMULA_ID_TBL,
p_PRICING_STATUS_CODE =>G_PRICING_STATUS_CODE_LD_TBL,
p_PRICING_STATUS_TEXT =>G_PRICING_STATUS_TEXT_LD_TBL,
p_PRODUCT_PRECEDENCE =>G_PRODUCT_PRECEDENCE_TBL ,
p_INCOMPATABLILITY_GRP_CODE =>G_INCOMP_GRP_CODE_TBL,
p_PROCESSED_FLAG =>G_PROCESSED_FLAG_LD_TBL,
p_APPLIED_FLAG =>G_APPLIED_FLAG_LD_TBL,
p_AUTOMATIC_FLAG =>G_AUTOMATIC_FLAG_TBL,
p_PRIMARY_UOM_FLAG =>G_PRIMARY_UOM_FLAG_TBL,
p_MODIFIER_LEVEL_CODE =>G_MODIFIER_LEVEL_CODE_TBL,
p_LIST_LINE_NO =>G_LIST_LINE_NO_TBL,
p_ROUNDING_FACTOR =>G_ROUNDING_FACTOR_TBL,
P_CURRENCY_DETAIL_ID =>G_CURRENCY_DETAIL_ID_TBL, /* sunilpandey */
P_CURRENCY_HEADER_ID =>G_CURRENCY_HEADER_ID_TBL, /* vivek */
P_SELLING_ROUNDING_FACTOR =>G_SELLING_ROUNDING_TBL, /* vivek */
P_ORDER_CURRENCY =>G_ORDER_CURRENCY_TBL, /* vivek */
P_PRICING_EFFECTIVE_DATE =>G_PRICING_EFFECTIVE_DATE_TBL, /* vivek */
P_BASE_CURRENCY_CODE =>G_BASE_CURRENCY_CODE_TBL, /* vivek */
P_BREAK_UOM_CODE =>G_BREAK_UOM_TBL, /* Proration */
P_BREAK_UOM_CONTEXT =>G_BREAK_CONTEXT_TBL, /* Proration */
P_BREAK_UOM_ATTRIBUTE =>G_BREAK_ATTRIBUTE_TBL, /* Proration */
x_status_code =>l_status_code,
x_status_text =>l_status_text
);
INSERT_LDETS_PRICE_LIST_PVT( p_LINE_DETAIL_index => G_LINE_DETAIL_INDEX_LD_TBL,
p_LINE_DETAIL_TYPE_CODE => G_LINE_DETAIL_TYPE_CODE_TBL,
p_PRICE_BREAK_TYPE_CODE => G_PRICE_BREAK_TYPE_CODE_TBL,
p_LINE_INDEX => G_LINE_INDEX_LD_TBL,
p_CREATED_FROM_LIST_HEADER_ID =>G_LIST_HEADER_ID_LD_TBL,
p_CREATED_FROM_LIST_LINE_ID =>G_LIST_LINE_ID_LD_TBL,
p_CREATED_FROM_LIST_LINE_TYPE =>G_LIST_LINE_TYPE_TBL,
p_CREATED_FROM_LIST_TYPE_CODE =>G_LIST_TYPE_CODE_TBL,
p_CREATED_FROM_SQL =>G_CREATED_FROM_SQL_TBL,
p_PRICING_GROUP_SEQUENCE =>G_PRICING_GROUP_SEQUENCE_TBL,
P_PRICING_PHASE_ID =>G_PRICING_PHASE_ID_TBL,
p_OPERAND_CALCULATION_CODE =>G_OPERAND_CALCULATION_CODE_TBL,
p_OPERAND_VALUE =>G_OPERAND_VALUE_TBL,
p_PRICE_FORMULA_ID =>G_PRICE_FORMULA_ID_TBL,
p_PRICING_STATUS_CODE =>G_PRICING_STATUS_CODE_LD_TBL,
p_PRICING_STATUS_TEXT =>G_PRICING_STATUS_TEXT_LD_TBL,
p_PRODUCT_PRECEDENCE =>G_PRODUCT_PRECEDENCE_TBL ,
p_INCOMPATABLILITY_GRP_CODE =>G_INCOMP_GRP_CODE_TBL,
p_PROCESSED_FLAG =>G_PROCESSED_FLAG_LD_TBL,
p_APPLIED_FLAG =>G_APPLIED_FLAG_LD_TBL,
p_AUTOMATIC_FLAG =>G_AUTOMATIC_FLAG_TBL,
p_PRIMARY_UOM_FLAG =>G_PRIMARY_UOM_FLAG_TBL,
p_MODIFIER_LEVEL_CODE =>G_MODIFIER_LEVEL_CODE_TBL,
p_LIST_LINE_NO =>G_LIST_LINE_NO_TBL,
p_ROUNDING_FACTOR =>G_ROUNDING_FACTOR_TBL,
P_BREAK_UOM_CODE =>G_BREAK_UOM_TBL, /* Proration */
P_BREAK_UOM_CONTEXT =>G_BREAK_CONTEXT_TBL, /* Proration */
P_BREAK_UOM_ATTRIBUTE =>G_BREAK_ATTRIBUTE_TBL, /* Proration */
x_status_code =>l_status_code,
x_status_text =>l_status_text
);
INSERT_PRICE_LIST_ATTRS
( p_LINE_INDEX_tbl =>G_LINE_INDEX_tbl,
p_LINE_DETAIL_INDEX_tbl =>G_LINE_DETAIL_INDEX_tbl,
p_ATTRIBUTE_LEVEL_tbl =>G_ATTRIBUTE_LEVEL_tbl,
p_ATTRIBUTE_TYPE_tbl =>G_ATTRIBUTE_TYPE_tbl,
p_LIST_HEADER_ID_tbl =>G_LIST_HEADER_ID_tbl,
p_LIST_LINE_ID_tbl =>G_LIST_LINE_ID_tbl,
p_CONTEXT_tbl =>G_CONTEXT_tbl,
p_ATTRIBUTE_tbl =>G_ATTRIBUTE_tbl,
p_VALUE_FROM_tbl =>G_VALUE_FROM_tbl,
p_SETUP_VALUE_FROM_tbl =>G_SETUP_VALUE_FROM_tbl,
p_SETUP_VALUE_TO_tbl =>G_SETUP_VALUE_TO_tbl,
p_GROUPING_NUMBER_tbl => G_GROUPING_NUMBER_tbl,
p_COMPARISON_OPERATOR_TYPE_tbl =>G_COMPARISON_OPERATOR_TYPE_tbl,
p_VALIDATED_FLAG_tbl =>G_VALIDATED_FLAG_tbl,
p_APPLIED_FLAG_tbl =>G_APPLIED_FLAG_tbl,
p_PRICING_STATUS_CODE_tbl =>G_PRICING_STATUS_CODE_tbl,
p_PRICING_STATUS_TEXT_tbl =>G_PRICING_STATUS_TEXT_tbl,
p_QUALIFIER_PRECEDENCE_tbl =>G_QUALIFIER_PRECEDENCE_tbl,
p_DATATYPE_tbl =>G_DATATYPE_tbl,
p_PRICING_ATTR_FLAG_tbl =>G_PRICING_ATTR_FLAG_tbl,
p_QUALIFIER_TYPE_tbl =>G_QUALIFIER_TYPE_TBL,
p_product_uom_code_tbl =>G_PRODUCT_UOM_CODE_TBL,
p_excluder_flag_tbl =>G_EXCLUDER_FLAG_TBL,
p_PRICING_PHASE_ID_TBL =>G_PRICING_PHASE_ID_TBL_A,
p_INCOMPATABILITY_GRP_CODE_TBL =>G_INCOMP_GRP_CODE_TBL_A,
p_LINE_DETAIL_TYPE_CODE_TBL =>G_LINE_DETAIL_TYPE_CODE_TBL_A,
p_MODIFIER_LEVEL_CODE_TBL =>G_MODIFIER_LEVEL_CODE_TBL_A,
p_PRIMARY_UOM_FLAG_TBL =>G_PRIMARY_UOM_FLAG_TBL_A,
x_status_code =>l_status_code,
x_status_text =>l_status_text);
select 'x' into l_dummy
from qp_npreq_lines_tmp
where LINE_UOM_CODE <> nvl(PRICED_UOM_CODE, LINE_UOM_CODE)
and (PRICE_FLAG = G_YES
or
PRICE_FLAG = G_PHASE and p_freeze_override_flag = G_YES)
and rownum = 1;
Update_Request_Line_Status(p_control_rec,'SUCCESS',p_freeze_override_flag,l_return_status,l_status_text); --[julin/4708044]
/*OPEN l_chk_deleted_pbh_cur(J.line_index,G_PRICE_LIST_PHASE_ID);
FETCH l_chk_deleted_pbh_cur INTO l_dummy;
IF l_chk_deleted_pbh_cur%FOUND THEN
Delete_Invalid_PBH_Children(J.line_index,G_PRICE_LIST_PHASE_ID);
CLOSE l_chk_deleted_pbh_cur;*/
Update_Request_Line_Status(p_control_rec,'FAILURE',p_freeze_override_flag,l_return_status,l_status_text); --[julin/4708044]
SELECT a.LIST_HEADER_ID,
a.QUALIFIER_GROUPING_NO,
a.QUALIFIER_GROUP_CNT,
a.UNIQUE_KEY,
-- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
1 --7038849
FROM QP_PREQ_QUAL_TMP a
WHERE a.LIST_LINE_ID = -1
AND a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND a.PRICING_PHASE_ID = p_pricing_phase_id
AND a.QUALIFIER_GROUPING_NO = -1 --7038849
GROUP BY a.LIST_HEADER_ID, a.QUALIFIER_GROUPING_NO,a.QUALIFIER_GROUP_CNT,a.UNIQUE_KEY
UNION ALL -- 7038849
SELECT a.LIST_HEADER_ID,
a.QUALIFIER_GROUPING_NO,
a.QUALIFIER_GROUP_CNT,
a.UNIQUE_KEY,
-- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
2 --7038849
FROM QP_PREQ_QUAL_TMP a
WHERE a.LIST_LINE_ID = -1
AND a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND a.PRICING_PHASE_ID = p_pricing_phase_id
AND a.QUALIFIER_GROUPING_NO <> -1 --7038849
GROUP BY a.LIST_HEADER_ID, a.QUALIFIER_GROUPING_NO,a.QUALIFIER_GROUP_CNT,a.UNIQUE_KEY
ORDER BY 1,6; --7038849
SELECT a.LINE_INDEX,
a.LIST_HEADER_ID,
a.QUALIFIER_GROUPING_NO,
a.QUALIFIER_GROUP_CNT,
a.UNIQUE_KEY,
-- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
1 -- 7038849
FROM QP_PREQ_QUAL_TMP a
WHERE a.LIST_LINE_ID = -1
AND a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND a.PRICING_PHASE_ID = p_pricing_phase_id
--AND a.LINE_INDEX > 0
AND a.QUALIFIER_GROUPING_NO = -1 --7038849
GROUP BY a.LINE_INDEX , a.LIST_HEADER_ID, a.QUALIFIER_GROUPING_NO,a.QUALIFIER_GROUP_CNT,a.UNIQUE_KEY
UNION ALL --7038849
SELECT a.LINE_INDEX,
a.LIST_HEADER_ID,
a.QUALIFIER_GROUPING_NO,
a.QUALIFIER_GROUP_CNT,
a.UNIQUE_KEY,
-- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
2 -- 7038849
FROM QP_PREQ_QUAL_TMP a
WHERE a.LIST_LINE_ID = -1
AND a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND a.PRICING_PHASE_ID = p_pricing_phase_id
--AND a.LINE_INDEX > 0
AND a.QUALIFIER_GROUPING_NO <> -1 --7038849
GROUP BY a.LINE_INDEX , a.LIST_HEADER_ID, a.QUALIFIER_GROUPING_NO,a.QUALIFIER_GROUP_CNT,a.UNIQUE_KEY
ORDER BY 1,2,7; --7038849
SELECT a.LIST_HEADER_ID,
a.LIST_LINE_ID,
a.QUALIFIER_GROUPING_NO,
a.QUALIFIER_GROUP_CNT,
a.HEADER_QUALS_EXIST_FLAG,
a.UNIQUE_KEY,
-- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
1 --7038849
FROM QP_PREQ_QUAL_TMP a
WHERE a.LIST_LINE_ID > 0
AND a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND a.PRICING_PHASE_ID = p_pricing_phase_id
AND a.QUALIFIER_GROUPING_NO = -1 --7038849
GROUP BY a.LIST_HEADER_ID , a.LIST_LINE_ID,a.QUALIFIER_GROUPING_NO,a.QUALIFIER_GROUP_CNT,a.HEADER_QUALS_EXIST_FLAG,
a.UNIQUE_KEY
UNION ALL -- 7038849
SELECT a.LIST_HEADER_ID,
a.LIST_LINE_ID,
a.QUALIFIER_GROUPING_NO,
a.QUALIFIER_GROUP_CNT,
a.HEADER_QUALS_EXIST_FLAG,
a.UNIQUE_KEY,
-- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
2 --7038849
FROM QP_PREQ_QUAL_TMP a
WHERE a.LIST_LINE_ID > 0
AND a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND a.PRICING_PHASE_ID = p_pricing_phase_id
AND a.QUALIFIER_GROUPING_NO <> -1 --7038849
GROUP BY a.LIST_HEADER_ID , a.LIST_LINE_ID,a.QUALIFIER_GROUPING_NO,a.QUALIFIER_GROUP_CNT,a.HEADER_QUALS_EXIST_FLAG,
a.UNIQUE_KEY
ORDER BY 1,2,8; --7038849
SELECT /*+ INDEX (a QP_PREQ_QUAL_TMP_N1) */ a.LINE_INDEX,
a.LIST_HEADER_ID,
a.LIST_LINE_ID,
a.QUALIFIER_GROUPING_NO,
a.QUALIFIER_GROUP_CNT,
a.HEADER_QUALS_EXIST_FLAG,
a.UNIQUE_KEY,
-- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
1
FROM QP_PREQ_QUAL_TMP a
WHERE LIST_LINE_ID > 0
AND a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
--AND a.LINE_INDEX > 0
AND a.PRICING_PHASE_ID = p_pricing_phase_id
AND a.QUALIFIER_GROUPING_NO = -1 --7038849
GROUP BY a.LINE_INDEX, a.LIST_HEADER_ID , a.LIST_LINE_ID,a.QUALIFIER_GROUPING_NO,
a.QUALIFIER_GROUP_CNT,a.HEADER_QUALS_EXIST_FLAG,a.UNIQUE_KEY
UNION ALL --7038849
SELECT /*+ INDEX (a QP_PREQ_QUAL_TMP_N1) */ a.LINE_INDEX,
a.LIST_HEADER_ID,
a.LIST_LINE_ID,
a.QUALIFIER_GROUPING_NO,
a.QUALIFIER_GROUP_CNT,
a.HEADER_QUALS_EXIST_FLAG,
a.UNIQUE_KEY,
-- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
2
FROM QP_PREQ_QUAL_TMP a
WHERE LIST_LINE_ID > 0
AND a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
--AND a.LINE_INDEX > 0
AND a.PRICING_PHASE_ID = p_pricing_phase_id
AND a.QUALIFIER_GROUPING_NO <> -1 --7038849
GROUP BY a.LINE_INDEX, a.LIST_HEADER_ID , a.LIST_LINE_ID,a.QUALIFIER_GROUPING_NO,
a.QUALIFIER_GROUP_CNT,a.HEADER_QUALS_EXIST_FLAG,a.UNIQUE_KEY
ORDER BY 1,2,3,9; --7038849
SELECT LIST_HEADER_ID
FROM QP_PREQ_QUAL_TMP
WHERE LIST_HEADER_ID = p_list_header_id
AND LIST_LINE_ID = -1
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND PRICING_PHASE_ID = p_pricing_phase_id
AND ROWNUM = 1;
SELECT LIST_HEADER_ID
FROM QP_PREQ_QUAL_TMP
WHERE LIST_HEADER_ID = p_list_header_id
AND LINE_INDEX = p_line_index
AND LIST_LINE_ID = -1
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND PRICING_PHASE_ID = p_pricing_phase_id
AND ROWNUM = 1;
SELECT LIST_HEADER_ID
FROM QP_QUALIFIERS
WHERE LIST_HEADER_ID = p_list_header_id
AND LIST_LINE_ID = -1
AND QUALIFIER_GROUPING_NO <> -1;
SELECT LIST_LINE_ID
FROM QP_QUALIFIERS
WHERE LIST_LINE_ID = p_list_line_id
AND QUALIFIER_GROUPING_NO <> -1;
engine_debug('Deleted Hdr id : '||i.list_header_id||' Unique Key : ' || i.unique_key);
engine_debug('Deleted Hdr id : '||i.list_header_id|| ' Unique Key : ' || i.unique_key);
engine_debug('Deleted Headers : ' || l_hdr_del_tbl(m));
UPDATE QP_PREQ_QUAL_TMP --upd1
SET PRICING_STATUS_CODE = G_DELETED_GRP
WHERE UNIQUE_KEY = l_hdr_del_tbl(i)
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND PRICING_PHASE_ID = p_pricing_phase_id;
l_hdr_del_tbl.delete;
engine_debug('Deleted Line id : '||j.list_line_id|| ' Unique Key : ' || j.unique_key);
engine_debug('Deleted Line id : '||j.list_line_id|| ' Unique Key : ' || j.unique_key);
engine_debug('Deleted Line id : '||j.list_line_id|| ' Unique Key : ' || j.unique_key);
engine_debug('Deleted Lines : ' || l_line_del_tbl(m));
UPDATE QP_PREQ_QUAL_TMP --upd2
SET PRICING_STATUS_CODE = G_DELETED_GRP
WHERE UNIQUE_KEY = l_line_del_tbl(i)
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND PRICING_PHASE_ID = p_pricing_phase_id;
l_line_del_tbl.delete;
engine_debug('Deleted Hdr id : '||i.list_header_id||' Line Indx: '||i.line_index || ' Unique Key : ' || i.unique_key);
engine_debug('Deleted Hdr id : '||i.list_header_id||' Line Indx: '||i.line_index || ' Unique Key : ' || i.unique_key);
engine_debug('Deleted Headers : ' || l_hdr_del_tbl(m));
UPDATE QP_PREQ_QUAL_TMP --upd3
SET PRICING_STATUS_CODE = G_DELETED_GRP
WHERE UNIQUE_KEY = l_hdr_del_tbl(i)
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND PRICING_PHASE_ID = p_pricing_phase_id;
l_hdr_del_tbl.delete;
engine_debug('Deleted Line id : '||j.list_line_id||' Line Indx: '||j.line_index || ' Unique Key : ' || j.unique_key);
engine_debug('Deleted Line id : '||j.list_line_id||' Line Indx: '||j.line_index || ' Unique Key : ' || j.unique_key);
engine_debug('Deleted Line id : '||j.list_line_id||' Line Indx: '||j.line_index || ' Unique Key : ' || j.unique_key);
engine_debug('Deleted Lines : ' || l_line_del_tbl(m));
UPDATE QP_PREQ_QUAL_TMP --upd4
SET PRICING_STATUS_CODE = G_DELETED_GRP
WHERE UNIQUE_KEY = l_line_del_tbl(i)
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND PRICING_PHASE_ID = p_pricing_phase_id;
l_line_del_tbl.delete;
|PROCEDURE SELECT_MODIFIERS
+----------------------------------------------------------
*/
PROCEDURE SELECT_MODIFIERS(p_pricing_phase_id IN NUMBER,
p_freeze_override_flag IN VARCHAR2,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
/*
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,QP_PREQ_QUAL_TMP_N5,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,QP_PREQ_QUAL_TMP_N5,SEARCH_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,QP_PRICING_ATTRIBUTES_N7,LIST_HEADER_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,QP_PRICING_ATTRIBUTES_N7,QUALIFICATION_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,QP_PRICING_ATTRIBUTES_N7,PRICING_PHASE_ID,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,QP_PRICING_ATTRIBUTES_N7,LIST_LINE_ID,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,QP_LIST_LINES_PK,LIST_LINE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,qp_npreq_lines_tmp_N1,LINE_INDEX,1
*/
CURSOR l_prod_qual_cur (p_pricing_phase_id NUMBER, p_list_header_id NUMBER, p_list_line_id NUMBER, p_line_index NUMBER) IS
-- Product and Qualifier Only. No pricing
select /*+ ORDERED USE_NL(QPPROD QPLATPR QPL ) index(QPPROD QP_PRICING_ATTRIBUTES_N7) index(qplatpr qp_preq_line_attrs_tmp_n2) l_prod_qual_cur_mod */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.validated_flag,
qplatpr.applied_flag,
qplatpr.attribute_level PRODUCT_ATTRIBUTE_LEVEL,
qplatpr.attribute_type PRODUCT_ATTRIBUTE_TYPE,
qplatpr.context PRODUCT_ATTRIBUTE_CONTEXT,
qplatpr.attribute PRODUCT_ATTRIBUTE,
qplatpr.value_from PRODUCT_ATTR_VALUE,
qpprod.product_attr_value PRODUCT_SETUP_VALUE,
qplatpr.pricing_attr_flag PRODUCT_PRICING_ATTR_FLAG,
qpprod.product_uom_code PRODUCT_UOM_CODE,
qpprod.excluder_flag,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.net_amount_flag, --IT net_amount 2720717
qpl.pricing_group_sequence,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.override_flag,
qpl.benefit_qty,
qpl.benefit_uom_code,
qpl.list_line_no,
qpl.accrual_flag,
qpl.accrual_conversion_rate,
qpl.estim_accrual_rate,
qpq.ask_for_flag,
qpq.created_from_list_type,
qpq.header_limit_exists,
qpl.limit_exists_flag line_limit_exists,
decode(p_list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE, --HQ is header level qualifier
qpl.charge_type_code,
qpl.charge_subtype_code,
qpl.accum_context, -- accum range break
qpl.accum_attribute, -- accum range break
qpl.accum_attr_run_src_flag -- accum range break
from
(select /*+ index (qpqq QP_PREQ_QUAL_TMP_N5) */
distinct line_index, list_header_id, list_line_id, ask_for_flag,created_from_list_type,header_limit_exists
from qp_preq_qual_tmp qpqq
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id
and search_ind = 1
and list_line_id > 0 ) qpq,
qp_pricing_attributes qpprod,
qp_npreq_line_attrs_tmp qplatpr,
qp_list_lines qpl,
qp_npreq_lines_tmp qplines
where
qpprod.list_header_id = qpq.list_header_id
and qpprod.list_line_id = qpq.list_line_id
and qpl.list_line_id = qpprod.list_line_id
and (qpl.modifier_level_code = qplines.line_type_code
OR
(qpl.modifier_level_code = G_LINE_GROUP and
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and qplines.pricing_effective_date BETWEEN
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
and nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
and qplines.priced_uom_code = nvl(qpprod.product_uom_code,qplines.priced_uom_code)
and qpprod.pricing_phase_id = p_pricing_phase_id
and qpprod.QUALIFICATION_IND in (QP_PREQ_GRP.G_YES_PROD_LINE_QUAL_IND,
QP_PREQ_GRP.G_YES_PROD_HDR_LINE_QUAL_IND)
and qpprod.product_attribute_context = qplatpr.context
and qpprod.product_attribute = qplatpr.attribute
and qpprod.product_attr_value = qplatpr.value_from
and qpprod.excluder_flag = G_NO
and qplines.line_index = qplatpr.line_index
and qplatpr.line_index = qpq.line_index
--and qpq.pricing_status_code = G_STATUS_UNCHANGED
--and qpq.search_ind = 1
and qplatpr.attribute_type='PRODUCT'
and qplatpr.pricing_status_code=G_STATUS_UNCHANGED
-- price book
and (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
or
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
union all
select /*+ ORDERED USE_NL(QPLATPR QPPROD QPL) index(QPPROD QP_PRICING_ATTRIBUTES_N5) index(qplatpr qp_preq_line_attrs_tmp_n1) l_prod_qual_cur_mod */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.validated_flag,
qplatpr.applied_flag,
qplatpr.attribute_level PRODUCT_ATTRIBUTE_LEVEL,
qplatpr.attribute_type PRODUCT_ATTRIBUTE_TYPE,
qplatpr.context PRODUCT_ATTRIBUTE_CONTEXT,
qplatpr.attribute PRODUCT_ATTRIBUTE,
qplatpr.value_from PRODUCT_ATTR_VALUE,
qpprod.product_attr_value PRODUCT_SETUP_VALUE,
qplatpr.pricing_attr_flag PRODUCT_PRICING_ATTR_FLAG,
qpprod.product_uom_code PRODUCT_UOM_CODE,
qpprod.excluder_flag,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.net_amount_flag, --IT net_amount 2720717
qpl.pricing_group_sequence,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.override_flag,
qpl.benefit_qty,
qpl.benefit_uom_code,
qpl.list_line_no,
qpl.accrual_flag,
qpl.accrual_conversion_rate,
qpl.estim_accrual_rate,
qpq.ask_for_flag,
qpq.created_from_list_type,
qpq.header_limit_exists,
qpl.limit_exists_flag line_limit_exists,
decode(p_list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE, --HQ is header level qualifier
qpl.charge_type_code,
qpl.charge_subtype_code,
qpl.accum_context, -- accum range break
qpl.accum_attribute, -- accum range break
qpl.accum_attr_run_src_flag -- accum range break
from
(select /*+ index (qpqq QP_PREQ_QUAL_TMP_N5) */
distinct line_index, list_header_id, list_line_id, ask_for_flag,created_from_list_type,header_limit_exists
from qp_preq_qual_tmp qpqq
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id
and search_ind = 1
and list_line_id < 0 ) qpq,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod,
qp_list_lines qpl,
qp_npreq_lines_tmp qplines
where
qpprod.list_header_id = qpq.list_header_id
and qpl.list_line_id = qpprod.list_line_id
and (qpl.modifier_level_code = qplines.line_type_code
OR
(qpl.modifier_level_code = G_LINE_GROUP and
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and qplines.pricing_effective_date BETWEEN
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
and nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
and qplines.priced_uom_code = nvl(qpprod.product_uom_code,qplines.priced_uom_code)
and qpprod.pricing_phase_id = p_pricing_phase_id
and qpprod.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
and qpprod.product_attribute_context = qplatpr.context
and qpprod.product_attribute = qplatpr.attribute
and qpprod.product_attr_value = qplatpr.value_from
and qpprod.excluder_flag = G_NO
and qplines.line_index = qplatpr.line_index
and qplatpr.line_index = qpq.line_index
and qplatpr.attribute_type='PRODUCT'
and qplatpr.pricing_status_code=G_STATUS_UNCHANGED
--and qpq.pricing_status_code=G_STATUS_UNCHANGED
--and qpq.search_ind = 1
-- price book
and (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
or
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
order by 4,2;
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,PRICING_PHASE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,QUALIFICATION_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE_CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTR_VALUE,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,EXCLUDER_FLAG,6
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,LIST_HEADER_ID,7
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,LIST_LINE_ID,8
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PREQ_QUAL_TMP_N5,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PREQ_QUAL_TMP_N5,SEARCH_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PREQ_QUAL_TMP_N5,LIST_HEADER_ID,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PREQ_QUAL_TMP_N5,LIST_LINE_ID,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PREQ_QUAL_TMP_N5,LINE_INDEX,5
-- Used for qplatpr and qplatpc
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_LIST_LINES_PK,LIST_LINE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_lines_tmp_U1,LINE_INDEX,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_lines_tmp_U1,LINE_TYPE_CODE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_PREQ_QUAL_TMP_N5,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_PREQ_QUAL_TMP_N5,SEARCH_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_PREQ_QUAL_TMP_N5,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_PRICING_ATTRIBUTES_N7,LIST_HEADER_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_PRICING_ATTRIBUTES_N7,QUALIFICATION_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_PRICING_ATTRIBUTES_N7,PRICING_PHASE_ID,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_PRICING_ATTRIBUTES_N7,LIST_LINE_ID,4
-- Used for qplatpr and qplatpc
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_LIST_LINES_PK,LIST_LINE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,qp_npreq_lines_tmp_U1,LINE_INDEX,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,qp_npreq_lines_tmp_U1,LINE_TYPE_CODE,2
*/
CURSOR l_prod_qual_pric_cur(p_pricing_phase_id NUMBER, p_list_header_id NUMBER, p_list_line_id NUMBER,
p_line_index NUMBER) IS
--Product+Qualifiers+Pricing
select /*+ ORDERED USE_NL(QPPROD QPLATPR QPLATPC QPL ) index(QPPROD QP_PRICING_ATTRIBUTES_N7) index(qplatpr qp_preq_line_attrs_tmp_N2) index(qplatpc qp_preq_line_attrs_tmp_N2) l_prod_qual_pric_cur_mod */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.validated_flag,
qplatpr.applied_flag,
--for product attrs
qplatpr.attribute_level PRODUCT_ATTRIBUTE_LEVEL,
qplatpr.attribute_type PRODUCT_ATTRIBUTE_TYPE,
qplatpr.context PRODUCT_ATTRIBUTE_CONTEXT,
qplatpr.attribute PRODUCT_ATTRIBUTE,
qplatpr.value_from PRODUCT_ATTR_VALUE,
qpprod.product_attr_value PRODUCT_SETUP_VALUE,
qplatpr.pricing_attr_flag PRODUCT_PRICING_ATTR_FLAG,
qpprod.product_uom_code PRODUCT_UOM_CODE,
qpprod.excluder_flag,
--for pricing attrs
qplatpc.attribute_level PRICING_ATTRIBUTE_LEVEL,
qplatpc.attribute_type PRICING_ATTRIBUTE_TYPE,
qplatpc.context PRICING_ATTRIBUTE_CONTEXT,
qplatpc.attribute PRICING_ATTRIBUTE,
qplatpc.value_from PRICING_ATTR_VALUE,
qpprod.pricing_attr_value_from PRICING_SETUP_VALUE_FROM,
qpprod.pricing_attr_value_to PRICING_SETUP_VALUE_TO,
qpprod.comparison_operator_code PRICING_COMPARISON_OPERATOR,
qpprod.pricing_attribute_datatype PRICING_DATATYPE,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.net_amount_flag, --IT net_amount 2720717
qpl.pricing_group_sequence,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.override_flag,
qpl.benefit_qty,
qpl.benefit_uom_code,
qpl.list_line_no,
qpl.accrual_flag,
qpl.accrual_conversion_rate,
qpl.estim_accrual_rate,
qpq.ask_for_flag,
qpq.created_from_list_type,
qpq.header_limit_exists,
qpl.limit_exists_flag line_limit_exists,
decode(p_list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE,
qpl.charge_type_code,
qpl.charge_subtype_code,
qpl.accum_context, -- accum range break
qpl.accum_attribute, -- accum range break
qpl.accum_attr_run_src_flag -- accum range break
from
(select /*+ index (qpqq QP_PREQ_QUAL_TMP_N5) */
distinct line_index, list_header_id, list_line_id, ask_for_flag,created_from_list_type,header_limit_exists
from qp_preq_qual_tmp qpqq
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id
and search_ind = 1
and list_line_id > 0 ) qpq,
QP_PRICING_ATTRIBUTES qpprod ,
qp_npreq_line_attrs_tmp qplatpr,
qp_npreq_line_attrs_tmp qplatpc,
qp_list_lines qpl ,
qp_npreq_lines_tmp qplines
where
qpprod.list_header_id = qpq.list_header_id
and qpprod.list_line_id = qpq.list_line_id
and qpl.list_line_id = qpprod.list_line_id
and (qpl.modifier_level_code = qplines.line_type_code
OR
(qpl.modifier_level_code = G_LINE_GROUP and
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and qplines.pricing_effective_date BETWEEN
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
AND nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
and qplines.priced_uom_code = nvl(qpprod.product_uom_code,qplines.priced_uom_code)
and qpl.QUALIFICATION_IND in (QP_PREQ_GRP.G_YES_PROD_PRIC_LINE_QUAL_IND,
QP_PREQ_GRP.G_YES_PRIC_HDR_LINE_QUAL_IND)
and qpl.list_line_type_code <> 'PLL'
and qpprod.pricing_phase_id = p_pricing_phase_id
and qpprod.QUALIFICATION_IND in (QP_PREQ_GRP.G_YES_PROD_PRIC_LINE_QUAL_IND,
QP_PREQ_GRP.G_YES_PRIC_HDR_LINE_QUAL_IND)
and qpprod.product_attribute_context = qplatpr.context
and qpprod.product_attribute = qplatpr.attribute
and qpprod.product_attr_value = qplatpr.value_from
and qpprod.excluder_flag = G_NO
and qpprod.pricing_attribute_context = qplatpc.context
and qpprod.pricing_attribute = qplatpc.attribute
and (qpprod.pricing_attr_value_from = qplatpc.value_from
or qpprod.comparison_operator_code IN ('NOT =',G_OPERATOR_BETWEEN))
--or qpl.price_break_type_code = G_RECURRING_BREAK)
and qpl.pricing_phase_id = p_pricing_phase_id
and qplines.line_index = qpq.line_index
and qplatpr.line_index = qpq.line_index
and qplatpc.line_index = qplatpr.line_index
and qplatpr.attribute_type='PRODUCT'
and qplatpr.pricing_status_code=G_STATUS_UNCHANGED
and qplatpc.attribute_type = 'PRICING'
and qplatpc.pricing_status_code = G_STATUS_UNCHANGED
--and qpq.pricing_status_code = G_STATUS_UNCHANGED
--and qpq.search_ind = 1
-- price book
and (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
or
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
union all
select /*+ ORDERED USE_NL(QPLATPR QPPROD QPLATPC QPL ) index(QPPROD QP_PRICING_ATTRIBUTES_N5) index(qplatpr qp_preq_line_attrs_tmp_N1) index(qplatpc qp_preq_line_attrs_tmp_N2) l_prod_qual_pric_cur_mod */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.validated_flag,
qplatpr.applied_flag,
--for product attrs
qplatpr.attribute_level PRODUCT_ATTRIBUTE_LEVEL,
qplatpr.attribute_type PRODUCT_ATTRIBUTE_TYPE,
qplatpr.context PRODUCT_ATTRIBUTE_CONTEXT,
qplatpr.attribute PRODUCT_ATTRIBUTE,
qplatpr.value_from PRODUCT_ATTR_VALUE,
qpprod.product_attr_value PRODUCT_SETUP_VALUE,
qplatpr.pricing_attr_flag PRODUCT_PRICING_ATTR_FLAG,
qpprod.product_uom_code PRODUCT_UOM_CODE,
qpprod.excluder_flag,
--for pricing attrs
qplatpc.attribute_level PRICING_ATTRIBUTE_LEVEL,
qplatpc.attribute_type PRICING_ATTRIBUTE_TYPE,
qplatpc.context PRICING_ATTRIBUTE_CONTEXT,
qplatpc.attribute PRICING_ATTRIBUTE,
qplatpc.value_from PRICING_ATTR_VALUE,
qpprod.pricing_attr_value_from PRICING_SETUP_VALUE_FROM,
qpprod.pricing_attr_value_to PRICING_SETUP_VALUE_TO,
qpprod.comparison_operator_code PRICING_COMPARISON_OPERATOR,
qpprod.pricing_attribute_datatype PRICING_DATATYPE,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.net_amount_flag, --IT net_amount 2720717
qpl.pricing_group_sequence,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.override_flag,
qpl.benefit_qty,
qpl.benefit_uom_code,
qpl.list_line_no,
qpl.accrual_flag,
qpl.accrual_conversion_rate,
qpl.estim_accrual_rate,
qpq.ask_for_flag,
qpq.created_from_list_type,
qpq.header_limit_exists,
qpl.limit_exists_flag line_limit_exists,
decode(p_list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE,
qpl.charge_type_code,
qpl.charge_subtype_code,
qpl.accum_context, -- accum range break
qpl.accum_attribute, -- accum range break
qpl.accum_attr_run_src_flag -- accum range break
from
(select /*+ index (qpqq QP_PREQ_QUAL_TMP_N5) */
distinct line_index, list_header_id, list_line_id, ask_for_flag,created_from_list_type,header_limit_exists
from qp_preq_qual_tmp qpqq
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id
and search_ind = 1
and list_line_id < 0 ) qpq,
qp_npreq_line_attrs_tmp qplatpr,
QP_PRICING_ATTRIBUTES qpprod ,
qp_npreq_line_attrs_tmp qplatpc,
qp_list_lines qpl ,
qp_npreq_lines_tmp qplines
where
qpprod.list_header_id = qpq.list_header_id
and qpl.list_line_id = qpprod.list_line_id
and (qpl.modifier_level_code = qplines.line_type_code
OR
(qpl.modifier_level_code = G_LINE_GROUP and
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and qplines.pricing_effective_date BETWEEN
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
AND nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
and qplines.priced_uom_code = nvl(qpprod.product_uom_code,qplines.priced_uom_code)
and qpl.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
and qpl.list_line_type_code <> 'PLL'
and qpprod.pricing_phase_id = p_pricing_phase_id
and qpprod.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
and qpprod.product_attribute_context = qplatpr.context
and qpprod.product_attribute = qplatpr.attribute
and qpprod.product_attr_value = qplatpr.value_from
and qpprod.excluder_flag = G_NO
and qpprod.pricing_attribute_context = qplatpc.context
and qpprod.pricing_attribute = qplatpc.attribute
and (qpprod.pricing_attr_value_from = qplatpc.value_from
or qpprod.comparison_operator_code IN ('NOT =',G_OPERATOR_BETWEEN))
and qpl.pricing_phase_id = p_pricing_phase_id
and qplines.line_index = qpq.line_index
and qplatpr.line_index = qpq.line_index
and qplatpc.line_index = qplatpr.line_index
and qplatpr.attribute_type='PRODUCT'
and qplatpr.pricing_status_code=G_STATUS_UNCHANGED
and qplatpc.attribute_type = 'PRICING'
and qplatpc.pricing_status_code = G_STATUS_UNCHANGED
--and qpq.pricing_status_code = G_STATUS_UNCHANGED
--and qpq.search_ind = 1
-- price book
and (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
or
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
order by 4,2;
INDX,QP_PREQ_GRP.select_modifiers.l_inner_qual_cur,QP_PREQ_QUAL_TMP_N5,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_inner_qual_cur,QP_PREQ_QUAL_TMP_N5,SEARCH_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_inner_qual_cur,QP_PREQ_QUAL_TMP_N5,list_header_id,3
INDX,QP_PREQ_GRP.select_modifiers.l_inner_qual_cur,QP_PREQ_QUAL_TMP_N5,list_line_id,4
INDX,QP_PREQ_GRP.select_modifiers.l_inner_qual_cur,QP_LIST_LINES_N5,PRICING_PHASE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_inner_qual_cur,QP_LIST_LINES_N5,QUALIFICATION_IND,2
*/
CURSOR l_INNER_QUAL_CUR(p_pricing_phase_id NUMBER,
p_list_header_id NUMBER,
p_list_line_id NUMBER,
p_line_index NUMBER,
p_pricing_effective_date DATE,
p_start_date_active_first DATE,
p_start_date_active_second DATE,
p_line_type_code VARCHAR2) IS
-- Qualifier Only
-- 5092968, qp_list_lines_n6 replaced with qp_list_lines_pk
select /*+ ORDERED INDEX(qpl,QP_LIST_LINES_PK) l_inner_qual_cur */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qpq.line_index,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.net_amount_flag, --IT net_amount 2720717
qpl.pricing_group_sequence,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.override_flag,
qpl.benefit_qty,
qpl.benefit_uom_code,
qpl.list_line_no,
qpl.accrual_flag,
qpl.accrual_conversion_rate,
qpl.estim_accrual_rate,
qpq.ask_for_flag,
qpq.created_from_list_type,
qpq.header_limit_exists,
qpl.limit_exists_flag line_limit_exists,
decode(p_list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE,
qpl.charge_type_code,
qpl.charge_subtype_code,
qpl.accum_context, -- accum range break
qpl.accum_attribute, -- accum range break
qpl.accum_attr_run_src_flag -- accum range break
from
(select /*+ index (qpqq QP_PREQ_QUAL_TMP_N5) */
distinct line_index, line_type_code,pricing_effective_date,list_header_id, list_line_id,
ask_for_flag, created_from_list_type,header_limit_exists
from qp_preq_qual_tmp qpqq
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id
and search_ind = 1
and list_line_id > 0 ) qpq,
qp_list_lines qpl
where
qpl.list_header_id = qpq.list_header_id
and qpl.list_line_id = qpq.list_line_id
and (qpl.modifier_level_code = qpq.line_type_code
OR
(qpl.modifier_level_code = G_LINE_GROUP and
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and qpq.pricing_effective_date BETWEEN
nvl(TRUNC(qpl.start_date_active), qpq.pricing_effective_date)
AND nvl(TRUNC(qpl.end_date_active),qpq.pricing_effective_date)
and qpl.QUALIFICATION_IND in (QP_PREQ_GRP.G_YES_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_HDR_LINE_QUAL_IND)
and qpl.list_line_type_code <>'PLL'
and qpl.pricing_phase_id = p_pricing_phase_id
--and qpq.pricing_status_code = G_STATUS_UNCHANGED
--and qpq.search_ind = 1
-- price book
and (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
or
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
union all
select /*+ ORDERED INDEX(qpl,QP_LIST_LINES_N5) l_inner_qual_cur */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qpq.line_index,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.net_amount_flag, --IT net_amount 2720717
qpl.pricing_group_sequence,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.override_flag,
qpl.benefit_qty,
qpl.benefit_uom_code,
qpl.list_line_no,
qpl.accrual_flag,
qpl.accrual_conversion_rate,
qpl.estim_accrual_rate,
qpq.ask_for_flag,
qpq.created_from_list_type,
qpq.header_limit_exists,
qpl.limit_exists_flag line_limit_exists,
decode(p_list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE,
qpl.charge_type_code,
qpl.charge_subtype_code,
qpl.accum_context, -- accum range break
qpl.accum_attribute, -- accum range break
qpl.accum_attr_run_src_flag -- accum range break
from
(select /*+ index (qpqq QP_PREQ_QUAL_TMP_N5) */
distinct line_index, line_type_code,pricing_effective_date,list_header_id, list_line_id,
ask_for_flag, created_from_list_type,header_limit_exists
from qp_preq_qual_tmp qpqq
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id
and search_ind = 1
and list_line_id < 0 ) qpq,
qp_list_lines qpl
where
qpl.list_header_id = qpq.list_header_id
and (qpl.modifier_level_code = qpq.line_type_code
OR
(qpl.modifier_level_code = G_LINE_GROUP and
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and qpq.pricing_effective_date BETWEEN
nvl(TRUNC(qpl.start_date_active), qpq.pricing_effective_date)
AND nvl(TRUNC(qpl.end_date_active),qpq.pricing_effective_date)
and qpl.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_HDR_QUAL_IND
and qpl.list_line_type_code <>'PLL'
and qpl.pricing_phase_id = p_pricing_phase_id
--and qpq.pricing_status_code = G_STATUS_UNCHANGED
--and qpq.search_ind = 1
-- price book
and (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
or
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
order by 4,2;
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICING_ATTRIBUTES_N5,PRICING_PHASE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICING_ATTRIBUTES_N5,QUALIFICATION_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE_CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTR_VALUE,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICING_ATTRIBUTES_N5,EXCLUDER_FLAG,6
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_LIST_HEADERS_B_PK,LIST_HEADER_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_lines_tmp_N1,LINE_INDEX,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_lines_tmp_N1,LINE_TYPE_CODE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICE_REQ_SOURCES_PK,REQUEST_TYPE_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICE_REQ_SOURCES_PK,SOURCE_SYSTEM_CODE,2
*/
CURSOR l_PROD_CUR (p_pricing_phase_id NUMBER) IS
-- Only Product attributes
select /*+ NO_EXPAND ORDERED USE_NL(QPLATPR QPPROD QPH QPL QPRS) INDEX(QPLINES) INDEX(QPLATPR) index(QPPROD QP_PRICING_ATTRIBUTES_N5 ) index(qph QP_LIST_HEADERS_B_N7) */ --5658579
/* ORDERED USE_NL(QPLATPR QPPROD QPH QPL QPRS) index(qplatpr QP_PREQ_LINE_ATTRS_TMP_N1) index(QPPROD QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n7) l_prod_cur_mod */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.validated_flag,
qplatpr.applied_flag,
--for product
qplatpr.attribute_level PRODUCT_ATTRIBUTE_LEVEL,
qplatpr.attribute_type PRODUCT_ATTRIBUTE_TYPE,
qplatpr.context PRODUCT_ATTRIBUTE_CONTEXT,
qplatpr.attribute PRODUCT_ATTRIBUTE,
qplatpr.value_from PRODUCT_ATTR_VALUE,
qpprod.product_attr_value PRODUCT_SETUP_VALUE,
qplatpr.pricing_attr_flag PRODUCT_PRICING_ATTR_FLAG,
qpprod.product_uom_code PRODUCT_UOM_CODE,
qpprod.excluder_flag,
NULL QUALIFIER_GROUPING_NO,
NULL QUALIFIER_PRECEDENCE,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator OPERAND_CALCULATION_CODE,
qpl.operand OPERAND_VALUE,
qpl.net_amount_flag, --IT net_amount 2720717
qpl.pricing_group_sequence,
qph.ask_for_flag,
qph.list_type_code CREATED_FROM_LIST_TYPE,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.override_flag,
qpl.benefit_qty,
qpl.benefit_uom_code,
qpl.list_line_no,
qpl.accrual_flag,
qpl.accrual_conversion_rate,
qpl.estim_accrual_rate,
qph.limit_exists_flag header_limit_exists,
qpl.limit_exists_flag line_limit_exists,
'NQ' QUALIFIER_TYPE, --NQ IS NO QUALIFIER
qpl.charge_type_code,
qpl.charge_subtype_code,
qpl.accum_context, -- accum range break
qpl.accum_attribute, -- accum range break
qpl.accum_attr_run_src_flag -- accum range break
FROM
qp_npreq_lines_tmp QPLINES,
qp_npreq_line_attrs_tmp qplatpr,
QP_PRICING_ATTRIBUTES QPPROD ,
QP_LIST_HEADERS_B QPH ,
QP_LIST_LINES QPL ,
--QP_PRICE_REQ_SOURCES QPRS
QP_PRICE_REQ_SOURCES_V QPRS /* yangli */
WHERE
(qplines.price_flag = G_YES
OR
(qplines.price_flag = G_PHASE
AND
p_freeze_override_flag = G_YES))
AND QPH.LIST_HEADER_ID = QPPROD.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and ((qph.currency_code is not null and qph.currency_code = qplines.currency_code)
or
qph.currency_code is null) -- optional currency
--AND qph.currency_code IN (qplines.currency_code , G_ANY_CURRENCY_CODE) --shu, allow currency_code being ANY for modifiers
and (qplines.unit_price is not null
or
qplines.usage_pricing_type = G_AUTHORING_TYPE
or
qplines.line_type_code = G_ORDER_LEVEL)
and (qpl.modifier_level_code = qplines.line_type_code
OR
(qpl.modifier_level_code = G_LINE_GROUP and
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and qph.active_flag = G_YES
AND ((qph.ASK_FOR_FLAG = G_YES and exists (SELECT /*+ index(la QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/pricebook]
FROM qp_npreq_line_attrs_tmp la
WHERE attribute_type = 'QUALIFIER'
AND pricing_status_code = G_STATUS_UNCHANGED
AND validated_flag = G_NO
AND list_header_id = qph.list_header_id
AND line_index = qplines.line_index))
OR qph.ask_for_flag = G_NO)
AND QPL.LIST_LINE_ID = QPPROD.LIST_LINE_ID
and nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) BETWEEN
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) AND
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
and nvl(qplines.start_date_active_first,TRUNC(SYSDATE)) BETWEEN
nvl(qph.start_date_active_first,nvl(qplines.start_date_active_first,TRUNC(SYSDATE)))
AND
nvl(qph.end_date_active_first,nvl(qplines.start_date_active_first,TRUNC(SYSDATE)))
and nvl(qplines.start_date_active_second,TRUNC(SYSDATE)) BETWEEN
nvl(qph.start_date_active_second, nvl(qplines.start_date_active_second,TRUNC(SYSDATE)))
AND
nvl(qph.end_date_active_second, nvl(qplines.start_date_active_second,TRUNC(SYSDATE)))
and nvl(qplines.active_date_first_type,'X') =
nvl(qph.active_date_first_type,nvl(qplines.active_date_first_type,'X'))
and nvl(qplines.active_date_second_type,'X') =
nvl(qph.active_date_second_type,nvl(qplines.active_date_second_type,'X'))
and nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) BETWEEN --bug7307625
nvl(qpl.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) AND
nvl(qpl.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
/*and qplines.pricing_effective_date BETWEEN
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
AND nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)*/
and qplines.priced_uom_code = nvl(qpprod.product_uom_code,qplines.priced_uom_code)
and qpprod.pricing_phase_id = p_pricing_phase_id
and qpprod.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_IND
and qpprod.product_attribute_context = qplatpr.context
and qpprod.product_attribute = qplatpr.attribute
and qpprod.product_attr_value = qplatpr.value_from
and qpprod.excluder_flag = G_NO
and qph.source_system_code = qprs.source_system_code
and qplines.request_type_code = qprs.request_type_code
AND QPLATPR.LINE_INDEX = QPLINES.LINE_INDEX
and qplatpr.attribute_type='PRODUCT'
and qplatpr.pricing_status_code=G_STATUS_UNCHANGED
-- price book
and (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
or
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
order by 4,2;
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICING_ATTRIBUTES_N5,PRICING_PHASE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICING_ATTRIBUTES_N5,QUALIFICATION_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE_CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTR_VALUE,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICING_ATTRIBUTES_N5,EXCLUDER_FLAG,6
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_LIST_HEADERS_B_PK,LIST_HEADER_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_lines_tmp_N1,LINE_INDEX,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_lines_tmp_N1,LINE_TYPE_CODE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICE_REQ_SOURCES_PK,REQUEST_TYPE_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICE_REQ_SOURCES_PK,SOURCE_SYSTEM_CODE,2
*/
CURSOR l_PROD_PRIC_CUR (p_pricing_phase_id NUMBER) IS
--PRODUCT and PRICING attributes
SELECT /*+ ORDERED USE_NL(QPLATPR QPPROD QPLATPC QPH QPL QPRS) index(qplatpr QP_PREQ_LINE_ATTRS_TMP_N1) index(QPPROD QP_PRICING_ATTRIBUTES_N5) index(qplatpc qp_preq_line_attrs_tmp_N2) index(qph qp_list_headers_b_n7) l_prod_pric_cur_mod */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.validated_flag,
qplatpr.applied_flag,
--FOR PRODUCT
qplatpr.attribute_level PRODUCT_ATTRIBUTE_LEVEL,
qplatpr.attribute_type PRODUCT_ATTRIBUTE_TYPE,
qplatpr.context PRODUCT_ATTRIBUTE_CONTEXT,
qplatpr.attribute PRODUCT_ATTRIBUTE,
qplatpr.value_from PRODUCT_ATTR_VALUE,
qpprod.product_attr_value PRODUCT_SETUP_VALUE,
qplatpr.pricing_attr_flag PRODUCT_PRICING_ATTR_FLAG,
qpprod.product_uom_code PRODUCT_UOM_CODE,
qpprod.excluder_flag,
--FOR PRICING
qplatpc.attribute_level PRICING_ATTRIBUTE_LEVEL,
qplatpc.attribute_type PRICING_ATTRIBUTE_TYPE,
qplatpc.context PRICING_ATTRIBUTE_CONTEXT,
qplatpc.attribute PRICING_ATTRIBUTE,
qplatpc.value_from PRICING_ATTR_VALUE,
qpprod.pricing_attr_value_from PRICING_SETUP_VALUE_FROM,
qpprod.pricing_attr_value_to PRICING_SETUP_VALUE_TO,
qpprod.comparison_operator_code PRICING_COMPARISON_OPERATOR,
qpprod.pricing_attribute_datatype PRICING_DATATYPE,
NULL qualifier_grouping_no,
NULL qualifier_precedence,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator OPERAND_CALCULATION_CODE,
qpl.operand OPERAND_VALUE,
qpl.net_amount_flag, --IT net_amount 2720717
qpl.pricing_group_sequence,
qph.ask_for_flag,
qph.list_type_code CREATED_FROM_LIST_TYPE,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.override_flag,
qpl.benefit_qty,
qpl.benefit_uom_code,
qpl.list_line_no,
qpl.accrual_flag,
qpl.accrual_conversion_rate,
qpl.estim_accrual_rate,
qph.limit_exists_flag header_limit_exists,
qpl.limit_exists_flag line_limit_exists,
'NQ' QUALIFIER_TYPE,
qpl.charge_type_code,
qpl.charge_subtype_code,
qpl.accum_context, -- accum range break
qpl.accum_attribute, -- accum range break
qpl.accum_attr_run_src_flag -- accum range break
FROM
qp_npreq_lines_tmp QPLINES,
qp_npreq_line_attrs_tmp qplatpr,
QP_PRICING_ATTRIBUTES QPPROD ,
qp_npreq_line_attrs_tmp qplatpc,
QP_LIST_HEADERS_B QPH ,
QP_LIST_LINES QPL ,
--QP_PRICE_REQ_SOURCES qprs
QP_PRICE_REQ_SOURCES_V qprs /* yangli */
WHERE
(qplines.price_flag = G_YES
OR
(qplines.price_flag = G_PHASE
AND
p_freeze_override_flag = G_YES))
and ((qph.currency_code is not null and qph.currency_code = qplines.currency_code)
OR
qph.currency_code is null) -- optional currency
--AND qph.currency_code IN (qplines.currency_code , G_ANY_CURRENCY_CODE) --shu, allow currency_code being ANY for modifiers
and (qplines.unit_price is not null
or
qplines.usage_pricing_type = G_AUTHORING_TYPE
or
qplines.line_type_code = G_ORDER_LEVEL)
and (qpl.modifier_level_code = qplines.line_type_code
OR
(qpl.modifier_level_code = G_LINE_GROUP and
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and qph.active_flag = G_YES
AND ((qph.ASK_FOR_FLAG = G_YES and exists (SELECT /*+ index(la QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/pricebook]
FROM qp_npreq_line_attrs_tmp la
WHERE attribute_type = 'QUALIFIER'
AND pricing_status_code = G_STATUS_UNCHANGED
AND validated_flag = G_NO
AND list_header_id = qph.list_header_id
AND line_index = qplines.line_index))
OR qph.ask_for_flag = G_NO)
AND QPH.LIST_HEADER_ID = QPPROD.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND QPL.LIST_LINE_ID = QPPROD.LIST_LINE_ID
AND QPPROD.PRICING_PHASE_ID = P_PRICING_PHASE_ID
and nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) BETWEEN
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) AND
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
and nvl(qplines.start_date_active_first,TRUNC(SYSDATE)) BETWEEN
nvl(qph.start_date_active_first,nvl(qplines.start_date_active_first,TRUNC(SYSDATE)))
AND
nvl(qph.end_date_active_first,nvl(qplines.start_date_active_first,TRUNC(SYSDATE)))
and nvl(qplines.start_date_active_second,TRUNC(SYSDATE)) BETWEEN
nvl(qph.start_date_active_second, nvl(qplines.start_date_active_second,TRUNC(SYSDATE)))
AND
nvl(qph.end_date_active_second, nvl(qplines.start_date_active_second,TRUNC(SYSDATE)))
and nvl(qplines.active_date_first_type,'X') =
nvl(qph.active_date_first_type,nvl(qplines.active_date_first_type,'X'))
and nvl(qplines.active_date_second_type,'X') =
nvl(qph.active_date_second_type,nvl(qplines.active_date_second_type,'X'))
and qplines.pricing_effective_date BETWEEN
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
AND nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
and qplines.priced_uom_code = nvl(qpprod.product_uom_code,qplines.priced_uom_code)
and qpprod.pricing_phase_id = p_pricing_phase_id
and qpprod.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_IND
and qpprod.product_attribute_context = qplatpr.context
and qpprod.product_attribute = qplatpr.attribute
and qpprod.product_attr_value = qplatpr.value_from
and qpprod.pricing_attribute_context = qplatpc.context
and qpprod.pricing_attribute = qplatpc.attribute
and (qpprod.pricing_attr_value_from = qplatpc.value_from
or qpprod.comparison_operator_code IN ('NOT =',G_OPERATOR_BETWEEN))
--or qpl.price_break_type_code = G_RECURRING_BREAK)
and qpprod.excluder_flag = G_NO
and qplatpc.line_index = qplatpr.line_index
and qplatpr.line_index = qplines.line_index
and qph.source_system_code = qprs.source_system_code
and qplines.request_type_code = qprs.request_type_code
and qplatpc.pricing_attr_flag = G_YES
and qplatpr.attribute_type='PRODUCT'
and qplatpr.pricing_status_code=G_STATUS_UNCHANGED
and qplatpc.attribute_type = 'PRICING'
and qplatpc.pricing_status_code = G_STATUS_UNCHANGED
-- price book
and (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
or
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
order by 4,2;
INDX,QP_PREQ_GRP.select_modifiers.l_cur,QP_LIST_LINES_N5,PRICING_PHASE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_cur,QP_LIST_LINES_N5,QUALIFICATION_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_cur,QP_LIST_HEADERS_B_N2,LIST_HEADER_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_cur,QP_LIST_HEADERS_B_N2,ACTIVE_FLAG,2
INDX,QP_PREQ_GRP.select_modifiers.l_cur,QP_LIST_HEADERS_B_N2,CURRENCY_CODE,3
INDX,QP_PREQ_GRP.select_modifiers.l_cur,QP_PRICE_REQ_SOURCES_PK,REQUEST_TYPE_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_cur,QP_PRICE_REQ_SOURCES_PK,SOURCE_SYSTEM_CODE,2
*/
cursor l_CUR (p_pricing_phase_id NUMBER) IS
-- NO PRODUCTS AND NO QUALIFIERS
SELECT /*+ NO_EXPAND ORDERED USE_NL(QPL QPH QPRS) index(QPL QP_LIST_LINES_N5) index(qph qp_list_headers_b_n7) l_cur_mod */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplines.line_index,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.net_amount_flag, --IT net_amount 2720717
qpl.pricing_group_sequence,
qph.ask_for_flag,
qph.list_type_code created_from_list_type,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.override_flag,
qpl.benefit_qty,
qpl.benefit_uom_code,
qpl.list_line_no,
qpl.accrual_flag,
qpl.accrual_conversion_rate,
qpl.estim_accrual_rate,
qph.limit_exists_flag header_limit_exists,
qpl.limit_exists_flag line_limit_exists,
qpl.charge_type_code,
qpl.charge_subtype_code,
qpl.accum_context, -- accum range break
qpl.accum_attribute, -- accum range break
qpl.accum_attr_run_src_flag -- accum range break
from
qp_npreq_lines_tmp qplines,
qp_list_lines qpl,
qp_list_headers_b qph,
--qp_price_req_sources qprs
qp_price_req_sources_v qprs /* yangli */
where qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and qph.active_flag=G_YES
AND ((qph.ASK_FOR_FLAG = G_YES and exists (SELECT /*+ index(la QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/pricebook]
FROM qp_npreq_line_attrs_tmp la
WHERE attribute_type = 'QUALIFIER'
AND pricing_status_code = G_STATUS_UNCHANGED
AND validated_flag = G_NO
AND list_header_id = qph.list_header_id
AND line_index = qplines.line_index))
OR qph.ask_for_flag = G_NO)
and qpl.pricing_phase_id=p_pricing_phase_id
and qpl.QUALIFICATION_IND = QP_PREQ_GRP.G_BLIND_DISCOUNT_IND
and (qplines.price_flag = G_YES
OR
(qplines.price_flag = G_PHASE
AND
p_freeze_override_flag = G_YES))
and ((qph.currency_code is not null and qph.currency_code = qplines.currency_code)
OR
qph.currency_code is null) -- optional currency
-- AND qph.currency_code IN (qplines.currency_code , G_ANY_CURRENCY_CODE) --shu, allow currency_code being ANY for modifiers
and (qplines.unit_price is not null
or
qplines.usage_pricing_type = G_AUTHORING_TYPE
or
qplines.line_type_code = G_ORDER_LEVEL)
and (qpl.modifier_level_code = qplines.line_type_code
OR
(qpl.modifier_level_code = G_LINE_GROUP and
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) BETWEEN
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) AND
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
and nvl(qplines.start_date_active_first,TRUNC(SYSDATE)) BETWEEN
nvl(qph.start_date_active_first,nvl(qplines.start_date_active_first,TRUNC(SYSDATE)))
AND
nvl(qph.end_date_active_first,nvl(qplines.start_date_active_first,TRUNC(SYSDATE)))
and nvl(qplines.start_date_active_second,TRUNC(SYSDATE)) BETWEEN
nvl(qph.start_date_active_second, nvl(qplines.start_date_active_second,TRUNC(SYSDATE)))
AND
nvl(qph.end_date_active_second, nvl(qplines.start_date_active_second,TRUNC(SYSDATE)))
and nvl(qplines.active_date_first_type,'X') =
nvl(qph.active_date_first_type,nvl(qplines.active_date_first_type,'X'))
and nvl(qplines.active_date_second_type,'X') =
nvl(qph.active_date_second_type,nvl(qplines.active_date_second_type,'X'))
and qplines.pricing_effective_date BETWEEN
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
AND nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
and qph.source_system_code = qprs.source_system_code
and qplines.request_type_code = qprs.request_type_code
-- price book
and (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
or
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
order by 4,2;
INDX,QP_PREQ_GRP.select_modifiers.l_get_excluded_prods_cur,QP_PRICING_ATTRIBUTES_N5,PRICING_PHASE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_get_excluded_prods_cur,QP_PRICING_ATTRIBUTES_N5,QUALIFICATION_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_get_excluded_prods_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE_CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_get_excluded_prods_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_get_excluded_prods_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTR_VALUE,5
INDX,QP_PREQ_GRP.select_modifiers.l_get_excluded_prods_cur,QP_PRICING_ATTRIBUTES_N5,EXCLUDER_FLAG,6
INDX,QP_PREQ_GRP.select_modifiers.l_get_excluded_prods_cur,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_get_excluded_prods_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_get_excluded_prods_cur,qp_npreq_line_attrs_tmp_N1,LINE_INDEX,1
INDX,QP_PREQ_GRP.select_modifiers.l_get_excluded_prods_cur,qp_npreq_line_attrs_tmp_N1,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_get_excluded_prods_cur,qp_npreq_line_attrs_tmp_N1,PRICING_STATUS_CODE,3
INDX,QP_PREQ_GRP.select_modifiers.l_get_excluded_prods_cur,qp_npreq_line_attrs_tmp_N1,LIST_HEADER_ID,4
INDX,QP_PREQ_GRP.select_modifiers.l_get_excluded_prods_cur,qp_npreq_line_attrs_tmp_N1,LIST_LINE_ID,5
-- Pricing Phase Change
CURSOR l_get_excluded_prods_cur(p_pricing_phase_id NUMBER) IS
SELECT /+ ORDERED USE_NL(b a) INDEX(c qp_preq_line_attrs_tmp_N2) index(b qp_pricing_attributes_n5) l_get_excluded_prods_cur /
b.list_header_id,
b.list_line_id,
c.line_index,
c.validated_flag,
c.applied_flag,
c.attribute_level,
G_PRICING_TYPE attribute_type,
c.context,
c.attribute,
c.value_from,
b.product_attr_value setup_value_from,
G_NO pricing_attr_flag,
b.product_uom_code,
b.excluder_flag,
-1 qualifier_precedence,
a.line_detail_index
FROM
qp_npreq_line_attrs_tmp c,
qp_pricing_attributes b,
qp_npreq_line_attrs_tmp a
WHERE b.pricing_phase_id = p_pricing_phase_id
AND b.qualification_ind in (G_YES_PROD_IND,G_YES_PROD_HDR_QUAL_IND,G_YES_PROD_LINE_QUAL_IND,G_YES_PROD_HDR_LINE_QUAL_IND)
AND b.product_attribute_context = c.context
AND b.product_attribute = c.attribute
AND b.product_attr_value = c.value_from
AND b.excluder_flag = G_YES
AND c.attribute_type = G_PRODUCT_TYPE
AND c.pricing_status_code = G_STATUS_UNCHANGED
AND a.list_header_id = b.list_header_id
AND a.list_line_id = b.list_line_id
AND a.line_index = c.line_index
AND a.attribute_type = G_PRODUCT_TYPE
AND a.pricing_status_code = G_STATUS_NEW;
INDX,QP_PREQ_GRP.select_modifiers.l_get_line_index_details,QP_PREQ_QUAL_TMP_N5,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_get_line_index_details,QP_PREQ_QUAL_TMP_N5,LINE_INDEX,5
*/
CURSOR l_get_line_index_details IS
SELECT distinct
c.LIST_HEADER_ID,
c.LIST_LINE_ID,
c.CREATED_FROM_LIST_TYPE,
c.ASK_FOR_FLAG,
c.LINE_INDEX,
c.PRICING_EFFECTIVE_DATE,
c.START_DATE_ACTIVE_FIRST,
c.START_DATE_ACTIVE_SECOND,
c.LINE_TYPE_CODE
FROM QP_PREQ_QUAL_TMP c
WHERE c.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND c.LINE_INDEX > 0
ORDER BY c.LINE_INDEX;
INDX,QP_PREQ_GRP.select_modifiers.l_get_line_index_for_quals,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_get_line_index_for_quals,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_get_line_index_for_quals,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_get_line_index_for_quals,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_get_line_index_for_quals,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_get_line_index_for_quals,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6
INDX,QP_PREQ_GRP.select_modifiers.l_get_line_index_for_quals,QP_PREQ_QUAL_TMP_N3,PRICING_STATUS_CODE,1
-- Full table scan on qp_npreq_lines_tmp
*/
--hw
CURSOR l_get_line_index_for_quals IS
SELECT /*+ ORDERED USE_NL(c a) index(a qp_preq_line_attrs_tmp_n2) l_get_line_index_for_quals */distinct
c.LIST_HEADER_ID,
c.LIST_LINE_ID,
c.QUALIFIER_ATTRIBUTE_CONTEXT,
c.QUALIFIER_ATTRIBUTE,
c.QUALIFIER_ATTRIBUTE_VALUE,
c.CREATED_FROM_LIST_TYPE,
c.ASK_FOR_FLAG,
c.QUALIFIER_GROUPING_NO,
c.QUALIFIER_GROUP_CNT,
c.OTHERS_GROUP_CNT,
c.HEADER_QUALS_EXIST_FLAG,
c.SEARCH_IND,
c.VALIDATED_FLAG,
c.APPLIED_FLAG,
c.QUALIFIER_ATTRIBUTE_LEVEL,
c.QUALIFIER_ATTRIBUTE_TYPE,
c.QUALIFIER_PRECEDENCE,
c.QUALIFIER_DATATYPE,
c.QUALIFIER_TYPE,
c.SETUP_VALUE_FROM,
c.SETUP_VALUE_TO,
c.QUALIFIER_PRICING_ATTR_FLAG,
c.QUALIFIER_OPERATOR_TYPE ,
c.START_DATE_ACTIVE,
c.END_DATE_ACTIVE,
b.LINE_INDEX,
b.PRICING_EFFECTIVE_DATE,
b.START_DATE_ACTIVE_FIRST,
b.START_DATE_ACTIVE_SECOND,
b.LINE_TYPE_CODE,
c.PRICING_STATUS_CODE,
p_pricing_phase_id PRICING_PHASE_ID,
b.LINE_INDEX || '-' || c.LIST_HEADER_ID || '-' || c.LIST_LINE_ID || '-' || c.QUALIFIER_GROUPING_NO UNIQUE_KEY,
NULL START_DATE_ACTIVE_H,
NULL END_DATE_ACTIVE_H,
NULL START_DATE_ACTIVE_SECOND_S,
NULL END_DATE_ACTIVE_SECOND_S,
NULL ACTIVE_DATE_FIRST_TYPE,
NULL ACTIVE_DATE_SECOND_TYPE,
c.HEADER_LIMIT_EXISTS,
a.DERIVED_QUALIFIER_FLAG -- Added for TCA
FROM qp_npreq_lines_tmp b,
QP_PREQ_QUAL_TMP c ,
qp_npreq_line_attrs_tmp a
WHERE a.CONTEXT = c.QUALIFIER_ATTRIBUTE_CONTEXT
AND a.ATTRIBUTE = c.QUALIFIER_ATTRIBUTE
AND a.VALUE_FROM = c.QUALIFIER_ATTRIBUTE_VALUE
AND a.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND c.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND c.PRICING_PHASE_ID = p_pricing_phase_id
AND a.LINE_INDEX = b.LINE_INDEX
AND ((c.ASK_FOR_FLAG = G_YES and exists (SELECT /*+ index(la QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/pricebook]
FROM qp_npreq_line_attrs_tmp la
WHERE attribute_type = 'QUALIFIER'
AND pricing_status_code = G_STATUS_UNCHANGED
AND validated_flag = G_NO
AND list_header_id = c.list_header_id
AND line_index = b.line_index))
OR c.ASK_FOR_FLAG = G_NO)
AND (b.UNIT_PRICE is not null
or
b.usage_pricing_type = G_AUTHORING_TYPE
or
b.LINE_TYPE_CODE = G_ORDER_LEVEL)
AND (b.PRICE_FLAG = G_YES
OR
(b.PRICE_FLAG = G_PHASE
AND
p_freeze_override_flag = G_YES))
AND TRUNC(nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)) BETWEEN --pricing date
TRUNC(nvl(c.START_DATE_ACTIVE,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))) AND --qualifier start date
TRUNC(nvl(c.END_DATE_ACTIVE,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))) AND --qualifier end date
TRUNC(nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)) BETWEEN --pricing date
TRUNC(nvl(c.START_DATE_ACTIVE_H,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))) AND --list header start date
TRUNC(nvl(c.END_DATE_ACTIVE_H,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))) AND --list header end date
TRUNC(nvl(b.START_DATE_ACTIVE_FIRST,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))
BETWEEN
TRUNC(nvl(c.START_DATE_ACTIVE_FIRST,nvl(b.START_DATE_ACTIVE_FIRST,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))) AND -- Order Date
TRUNC(nvl(c.END_DATE_ACTIVE_FIRST,nvl(b.START_DATE_ACTIVE_FIRST,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))) AND
TRUNC(nvl(b.START_DATE_ACTIVE_SECOND,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))
BETWEEN
TRUNC(nvl(c.START_DATE_ACTIVE_SECOND,nvl(b.START_DATE_ACTIVE_SECOND,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))) AND --Ship Date
TRUNC(nvl(c.END_DATE_ACTIVE_SECOND,nvl(b.START_DATE_ACTIVE_SECOND,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))))
AND nvl(b.ACTIVE_DATE_FIRST_TYPE,'X') = nvl(c.ACTIVE_DATE_FIRST_TYPE,nvl(b.ACTIVE_DATE_FIRST_TYPE,'X')) -- ORD
AND nvl(b.ACTIVE_DATE_SECOND_TYPE,'X') = nvl(c.ACTIVE_DATE_SECOND_TYPE,nvl(b.ACTIVE_DATE_SECOND_TYPE,'X')) -- SHIP
ORDER BY 1,2,3 ;
SELECT /* ORDERED USE_NL(c a) index(a qp_npreq_line_attrs_tmp_n2) l_get_line_index_for_quals /
distinct
c.LIST_HEADER_ID,
c.LIST_LINE_ID,
c.QUALIFIER_ATTRIBUTE_CONTEXT,
c.QUALIFIER_ATTRIBUTE,
c.QUALIFIER_ATTRIBUTE_VALUE,
c.CREATED_FROM_LIST_TYPE,
c.ASK_FOR_FLAG,
c.QUALIFIER_GROUPING_NO,
c.QUALIFIER_GROUP_CNT,
c.OTHERS_GROUP_CNT,
c.HEADER_QUALS_EXIST_FLAG,
c.SEARCH_IND,
c.VALIDATED_FLAG,
c.APPLIED_FLAG,
c.QUALIFIER_ATTRIBUTE_LEVEL,
c.QUALIFIER_ATTRIBUTE_TYPE,
c.QUALIFIER_PRECEDENCE,
c.QUALIFIER_DATATYPE,
c.QUALIFIER_TYPE,
c.SETUP_VALUE_FROM,
c.SETUP_VALUE_TO,
c.QUALIFIER_PRICING_ATTR_FLAG,
c.QUALIFIER_OPERATOR_TYPE ,
c.START_DATE_ACTIVE,
c.END_DATE_ACTIVE,
b.LINE_INDEX,
b.PRICING_EFFECTIVE_DATE,
b.START_DATE_ACTIVE_FIRST,
b.START_DATE_ACTIVE_SECOND,
b.LINE_TYPE_CODE,
c.PRICING_STATUS_CODE,
p_pricing_phase_id PRICING_PHASE_ID,
b.LINE_INDEX || '-' || c.LIST_HEADER_ID || '-' || c.LIST_LINE_ID || '-' || c.QUALIFIER_GROUPING_NO UNIQUE_KEY,
NULL START_DATE_ACTIVE_H,
NULL END_DATE_ACTIVE_H,
NULL START_DATE_ACTIVE_SECOND_S,
NULL END_DATE_ACTIVE_SECOND_S,
NULL ACTIVE_DATE_FIRST_TYPE,
NULL ACTIVE_DATE_SECOND_TYPE,
c.HEADER_LIMIT_EXISTS
FROM qp_npreq_lines_tmp b,
QP_PREQ_QUAL_TMP c ,
qp_npreq_line_attrs_tmp a
WHERE a.CONTEXT = c.QUALIFIER_ATTRIBUTE_CONTEXT
AND a.ATTRIBUTE = c.QUALIFIER_ATTRIBUTE
AND a.VALUE_FROM = c.QUALIFIER_ATTRIBUTE_VALUE
AND a.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND c.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND c.PRICING_PHASE_ID = p_pricing_phase_id
and c.qualifier_grouping_no <> -1
and c.other_group_cnt + c.null_group_cnt = c.qualifier_group_cnt
AND a.LINE_INDEX = b.LINE_INDEX
AND ((c.ASK_FOR_FLAG = G_YES and
(c.LIST_HEADER_ID,b.LINE_INDEX) IN (SELECT list_header_id,line_index
FROM qp_npreq_line_attrs_tmp
WHERE attribute_type = 'QUALIFIER'
AND pricing_status_code = G_STATUS_UNCHANGED
AND validated_flag = G_NO
AND list_header_id IS NOT NULL))
OR c.ASK_FOR_FLAG = G_NO)
AND (b.UNIT_PRICE is not null
or
b.usage_pricing_type = G_AUTHORING_TYPE
or
b.LINE_TYPE_CODE = G_ORDER_LEVEL)
AND (b.PRICE_FLAG = G_YES
OR
(b.PRICE_FLAG = G_PHASE
AND
p_freeze_override_flag = G_YES))
AND TRUNC(nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)) BETWEEN --pricing date
TRUNC(nvl(c.START_DATE_ACTIVE,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))) AND --qualifier start date
TRUNC(nvl(c.END_DATE_ACTIVE,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))) AND --qualifier end date
TRUNC(nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)) BETWEEN --pricing date
TRUNC(nvl(c.START_DATE_ACTIVE_H,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))) AND --list header start date
TRUNC(nvl(c.END_DATE_ACTIVE_H,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))) AND --list header end date
TRUNC(nvl(b.START_DATE_ACTIVE_FIRST,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))
BETWEEN
TRUNC(nvl(c.START_DATE_ACTIVE_FIRST,nvl(b.START_DATE_ACTIVE_FIRST,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))) AND -- Order Date
TRUNC(nvl(c.END_DATE_ACTIVE_FIRST,nvl(b.START_DATE_ACTIVE_FIRST,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))) AND
TRUNC(nvl(b.START_DATE_ACTIVE_SECOND,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))
BETWEEN
TRUNC(nvl(c.START_DATE_ACTIVE_SECOND,nvl(b.START_DATE_ACTIVE_SECOND,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))) AND --Ship Date
TRUNC(nvl(c.END_DATE_ACTIVE_SECOND,nvl(b.START_DATE_ACTIVE_SECOND,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))))
AND nvl(b.ACTIVE_DATE_FIRST_TYPE,'X') = nvl(c.ACTIVE_DATE_FIRST_TYPE,nvl(b.ACTIVE_DATE_FIRST_TYPE,'X')) -- ORD
AND nvl(b.ACTIVE_DATE_SECOND_TYPE,'X') = nvl(c.ACTIVE_DATE_SECOND_TYPE,nvl(b.ACTIVE_DATE_SECOND_TYPE,'X')) -- SHIP
union all
SELECT /* ORDERED USE_NL(c a) index(a qp_npreq_line_attrs_tmp_n2) l_get_line_index_for_quals /
distinct
c.LIST_HEADER_ID,
c.LIST_LINE_ID,
c.QUALIFIER_ATTRIBUTE_CONTEXT,
c.QUALIFIER_ATTRIBUTE,
c.QUALIFIER_ATTRIBUTE_VALUE,
c.CREATED_FROM_LIST_TYPE,
c.ASK_FOR_FLAG,
c.QUALIFIER_GROUPING_NO,
c.QUALIFIER_GROUP_CNT,
c.OTHERS_GROUP_CNT,
c.HEADER_QUALS_EXIST_FLAG,
c.SEARCH_IND,
c.VALIDATED_FLAG,
c.APPLIED_FLAG,
c.QUALIFIER_ATTRIBUTE_LEVEL,
c.QUALIFIER_ATTRIBUTE_TYPE,
c.QUALIFIER_PRECEDENCE,
c.QUALIFIER_DATATYPE,
c.QUALIFIER_TYPE,
c.SETUP_VALUE_FROM,
c.SETUP_VALUE_TO,
c.QUALIFIER_PRICING_ATTR_FLAG,
c.QUALIFIER_OPERATOR_TYPE ,
c.START_DATE_ACTIVE,
c.END_DATE_ACTIVE,
b.LINE_INDEX,
b.PRICING_EFFECTIVE_DATE,
b.START_DATE_ACTIVE_FIRST,
b.START_DATE_ACTIVE_SECOND,
b.LINE_TYPE_CODE,
c.PRICING_STATUS_CODE,
p_pricing_phase_id PRICING_PHASE_ID,
b.LINE_INDEX || '-' || c.LIST_HEADER_ID || '-' || c.LIST_LINE_ID || '-' || c.QUALIFIER_GROUPING_NO UNIQUE_KEY,
NULL START_DATE_ACTIVE_H,
NULL END_DATE_ACTIVE_H,
NULL START_DATE_ACTIVE_SECOND_S,
NULL END_DATE_ACTIVE_SECOND_S,
NULL ACTIVE_DATE_FIRST_TYPE,
NULL ACTIVE_DATE_SECOND_TYPE,
c.HEADER_LIMIT_EXISTS
FROM qp_npreq_lines_tmp b,
QP_PREQ_QUAL_TMP c ,
qp_npreq_line_attrs_tmp a
WHERE a.CONTEXT = c.QUALIFIER_ATTRIBUTE_CONTEXT
AND a.ATTRIBUTE = c.QUALIFIER_ATTRIBUTE
AND a.VALUE_FROM = c.QUALIFIER_ATTRIBUTE_VALUE
AND a.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND c.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND c.PRICING_PHASE_ID = p_pricing_phase_id
and c.qualifier_grouping_no = -1
and c.null_group_cnt = c.qualifier_group_cnt
and nvl(c.others_group_cnt,0) = 0 -- to indicate that there are no other groups(coming from qp_qualifiers table)
AND a.LINE_INDEX = b.LINE_INDEX
AND ((c.ASK_FOR_FLAG = G_YES and
(c.LIST_HEADER_ID,b.LINE_INDEX) IN (SELECT list_header_id,line_index
FROM qp_npreq_line_attrs_tmp
WHERE attribute_type = 'QUALIFIER'
AND pricing_status_code = G_STATUS_UNCHANGED
AND validated_flag = G_NO
AND list_header_id IS NOT NULL))
OR c.ASK_FOR_FLAG = G_NO)
AND (b.UNIT_PRICE is not null
or
b.usage_pricing_type = G_AUTHORING_TYPE
or
b.LINE_TYPE_CODE = G_ORDER_LEVEL)
AND (b.PRICE_FLAG = G_YES
OR
(b.PRICE_FLAG = G_PHASE
AND
p_freeze_override_flag = G_YES))
AND TRUNC(nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)) BETWEEN --pricing date
TRUNC(nvl(c.START_DATE_ACTIVE,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))) AND --qualifier start date
TRUNC(nvl(c.END_DATE_ACTIVE,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))) AND --qualifier end date
TRUNC(nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)) BETWEEN --pricing date
TRUNC(nvl(c.START_DATE_ACTIVE_H,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))) AND --list header start date
TRUNC(nvl(c.END_DATE_ACTIVE_H,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))) AND --list header end date
TRUNC(nvl(b.START_DATE_ACTIVE_FIRST,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))
BETWEEN
TRUNC(nvl(c.START_DATE_ACTIVE_FIRST,nvl(b.START_DATE_ACTIVE_FIRST,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))) AND -- Order Date
TRUNC(nvl(c.END_DATE_ACTIVE_FIRST,nvl(b.START_DATE_ACTIVE_FIRST,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))) AND
TRUNC(nvl(b.START_DATE_ACTIVE_SECOND,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))
BETWEEN
TRUNC(nvl(c.START_DATE_ACTIVE_SECOND,nvl(b.START_DATE_ACTIVE_SECOND,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE)))) AND --Ship Date
TRUNC(nvl(c.END_DATE_ACTIVE_SECOND,nvl(b.START_DATE_ACTIVE_SECOND,nvl(b.PRICING_EFFECTIVE_DATE,SYSDATE))))
AND nvl(b.ACTIVE_DATE_FIRST_TYPE,'X') = nvl(c.ACTIVE_DATE_FIRST_TYPE,nvl(b.ACTIVE_DATE_FIRST_TYPE,'X')) -- ORD
AND nvl(b.ACTIVE_DATE_SECOND_TYPE,'X') = nvl(c.ACTIVE_DATE_SECOND_TYPE,nvl(b.ACTIVE_DATE_SECOND_TYPE,'X')); -- SHIP
INDX,QP_PREQ_GRP.select_modifiers.l_get_satisfied_quals,QP_PREQ_QUAL_TMP_N2,LINE_INDEX,1
INDX,QP_PREQ_GRP.select_modifiers.l_get_satisfied_quals,QP_PREQ_QUAL_TMP_N2,PRICING_PHASE_ID,2
INDX,QP_PREQ_GRP.select_modifiers.l_get_satisfied_quals,QP_PREQ_QUAL_TMP_N2,PRICING_STATUS_CODE,3
INDX,QP_PREQ_GRP.select_modifiers.l_get_satisfied_quals,QP_PREQ_QUAL_TMP_N2,LIST_HEADER_ID,4
INDX,QP_PREQ_GRP.select_modifiers.l_get_satisfied_quals,QP_PREQ_QUAL_TMP_N2,LIST_LINE_ID,5
*/
CURSOR l_get_satisfied_quals(p_list_header_id NUMBER , p_list_line_id NUMBER, p_line_index NUMBER) IS
SELECT /*+ INDEX(c QP_PREQ_QUAL_TMP_N1) l_get_satisfied_quals */
c.LIST_HEADER_ID,
c.LIST_LINE_ID,
c.QUALIFIER_GROUP_CNT,
c.HEADER_QUALS_EXIST_FLAG,
c.SEARCH_IND,
c.VALIDATED_FLAG,
c.APPLIED_FLAG,
c.QUALIFIER_ATTRIBUTE_LEVEL,
c.QUALIFIER_ATTRIBUTE_TYPE,
c.QUALIFIER_ATTRIBUTE_CONTEXT,
c.QUALIFIER_ATTRIBUTE,
c.QUALIFIER_ATTRIBUTE_VALUE,
c.QUALIFIER_GROUPING_NO ,
c.QUALIFIER_PRECEDENCE,
c.QUALIFIER_DATATYPE,
c.SETUP_VALUE_FROM,
c.SETUP_VALUE_TO,
c.QUALIFIER_PRICING_ATTR_FLAG,
c.QUALIFIER_OPERATOR_TYPE ,
c.CREATED_FROM_LIST_TYPE,
decode(c.LIST_LINE_ID,-1,'HQ','LQ') QUALIFIER_TYPE
FROM QP_PREQ_QUAL_TMP c
WHERE c.LIST_HEADER_ID = p_list_header_id
AND c.LIST_LINE_ID IN (p_list_line_id,-1)
AND c.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND c.LINE_INDEX = p_line_index
AND c.PRICING_PHASE_ID = p_pricing_phase_id
UNION
-- To get the -1 group qualifiers for non -1 groups only
-- non -1 groups = OTHERS_GROUP_CNT <> 0
SELECT /*+ INDEX(c QP_PREQ_QUAL_TMP_N1) l_get_satisfied_quals */
c.LIST_HEADER_ID,
c.LIST_LINE_ID,
c.QUALIFIER_GROUP_CNT,
c.HEADER_QUALS_EXIST_FLAG,
c.SEARCH_IND,
c.VALIDATED_FLAG,
c.APPLIED_FLAG,
c.QUALIFIER_ATTRIBUTE_LEVEL,
c.QUALIFIER_ATTRIBUTE_TYPE,
c.QUALIFIER_ATTRIBUTE_CONTEXT,
c.QUALIFIER_ATTRIBUTE,
c.QUALIFIER_ATTRIBUTE_VALUE,
c.QUALIFIER_GROUPING_NO ,
c.QUALIFIER_PRECEDENCE,
c.QUALIFIER_DATATYPE,
c.SETUP_VALUE_FROM,
c.SETUP_VALUE_TO,
c.QUALIFIER_PRICING_ATTR_FLAG,
c.QUALIFIER_OPERATOR_TYPE ,
c.CREATED_FROM_LIST_TYPE,
decode(c.LIST_LINE_ID,-1,'HQ','LQ') QUALIFIER_TYPE
FROM QP_PREQ_QUAL_TMP c
WHERE c.LIST_HEADER_ID = p_list_header_id
AND c.LIST_LINE_ID IN (p_list_line_id,-1)
AND c.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND c.PRICING_PHASE_ID = p_pricing_phase_id
AND c.NULL_GROUP_CNT <> 0
AND c.OTHERS_GROUP_CNT <> 0 -- meaning there are other groups for which this cursor selects the -1 group qualifiers in perf path
AND c.QUALIFIER_GROUPING_NO = -1;
SELECT/*+ ORDERED */ 'x'
FROM qp_qualifiers b
WHERE b.search_ind = 2
and b.list_header_id in (select distinct a.list_header_id from qp_preq_qual_tmp a
where a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
and a.search_ind = 1
and a.pricing_phase_id = p_pricing_phase_id)
AND rownum = 1;
l_routine VARCHAR2(240):='Routine:QP_PREQ_GRP.SELECT_MODIFIERS';
engine_debug('Before Big Select');
qp_debug_util.tstart('DELETE_HDRS_WITH_NO_PRODATTR','Deleting the headers with no product attribute');
Delete_Hdrs_With_No_ProdAttr(p_pricing_phase_id,l_status_code,l_status_text);
qp_debug_util.tstop('DELETE_HDRS_WITH_NO_PRODATTR');
INDX,QP_PREQ_GRP.select_modifiers.select_modifiers_sel1,QP_PREQ_QUAL_TMP_N5,PRICING_STATUS_CODE,1
*/
/* FOR c1 in (select list_header_id , list_line_id , qualifier_grouping_no
from qp_preq_qual_tmp
where pricing_status_code = G_STATUS_UNCHANGED
and pricing_phase_id = p_pricing_phase_id
order by list_header_id,list_line_id,qualifier_grouping_no) LOOP
IF G_DEBUG_ENGINE = FND_API.G_TRUE THEN
engine_debug('Executing Mini Caching Qualifiers for phase : ' || p_pricing_phase_id ||
'List Header id : ' || c1.list_header_id || ' List Line Id : ' || c1.list_line_id ||
'Grouping No: ' || c1.qualifier_grouping_no);
-- update null group count
--update qp_preq_qual_tmp qpqt1
--set qpqt1.null_group_cnt = (select count(*)
from qp_preq_qual_tmp qpqt2
where qpqt2.list_header_id = qpqt1.list_header_id
and qpqt2.list_line_id = qpqt1.list_line_id
and qpqt2.qualifier_grouping_no = -1
and qpqt2.pricing_status_code <> G_DELETED_GRP
and qpqt2.pricing_phase_id = p_pricing_phase_id
and qpqt2.pricing_status_code = G_STATUS_UNCHANGED)
where qpqt1.pricing_phase_id = p_pricing_phase_id
and qpqt1.pricing_status_code = G_STATUS_UNCHANGED;
--and qpqt1.qualifier_grouping_no = -1; -- should update all groups and not just -1 groups
-- update other group count
--update qp_preq_qual_tmp qpqt1
--set qpqt1.other_group_cnt = (select count(*)
from qp_preq_qual_tmp qpqt2
where qpqt2.list_header_id = qpqt1.list_header_id
and qpqt2.list_line_id = qpqt1.list_line_id
and qpqt2.qualifier_grouping_no <> -1
and qpqt2.pricing_status_code <> G_DELETED_GRP
and qpqt2.pricing_phase_id = p_pricing_phase_id
and qpqt1.qualifier_grouping_no = qpqt2.qualifier_grouping_no
and qpqt2.pricing_status_code = G_STATUS_UNCHANGED)
where qpqt1.pricing_phase_id = p_pricing_phase_id
and qpqt1.pricing_status_code = G_STATUS_UNCHANGED
and qpqt1.qualifier_grouping_no <> -1;
for i in (select list_header_id,list_line_id,qualifier_grouping_no,null_group_cnt,other_group_cnt,search_ind,
qualifier_group_cnt,others_group_cnt,qualifier_attribute_context,qualifier_attribute,qualifier_attribute_value
from qp_preq_qual_tmp
where pricing_phase_id = p_pricing_phase_id
and pricing_status_code = 'X'
order by 1,2,3)
loop
QP_PREQ_GRP.engine_debug('List Header Id: ' || i.list_header_id);
G_LIST_HEADER_ID_TBL_Q.delete;
G_LIST_LINE_ID_TBL_Q.delete;
G_CONTEXT_TBL_Q.delete;
G_ATTRIBUTE_TBL_Q.delete;
G_VALUE_FROM_TBL_Q.delete;
G_LIST_TYPE_CODE_TBL_Q.delete;
G_ASK_FOR_FLAG_TBL_Q.delete;
G_GROUPING_NO_TBL_Q.delete;
G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
G_OTHERS_GROUP_CNT_TBL_Q.delete;
G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
G_SEARCH_IND_TBL_Q.delete;
G_VALIDATED_FLAG_TBL_Q.delete;
G_APPLIED_FLAG_TBL_Q.delete;
G_ATTRIBUTE_LEVEL_TBL_Q.delete;
G_ATTRIBUTE_TYPE_TBL_Q.delete;
G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
G_DATATYPE_TBL_Q.delete;
G_QUALIFIER_TYPE_TBL_Q.delete;
G_SETUP_VALUE_FROM_TBL_Q.delete;
G_SETUP_VALUE_TO_TBL_Q.delete;
G_PRICING_ATTR_FLAG_TBL_Q.delete;
G_OPERATOR_TYPE_TBL_Q.delete;
G_LINE_INDEX_TBL_Q.delete;
G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
G_LINE_TYPE_CODE_TBL_Q.delete;
G_PRICING_STATUS_CODE_TBL_Q.delete;
G_PRICING_PHASE_ID_TBL_Q.delete;
G_UNIQUE_KEY_TBL_Q.delete;
G_START_DATE_ACTIVE_TBL_H_Q.delete;
G_END_DATE_ACTIVE_TBL_H_Q.delete;
G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
engine_debug('Inserting no rows into qp_preq_qual_tmp for each line index');
engine_debug('Inserting rows into qp_preq_qual_tmp for each line index: ' || G_LIST_HEADER_ID_TBL_Q.COUNT);
INSERT_QUAL(
G_LIST_HEADER_ID_TBL_Q
, G_LIST_LINE_ID_TBL_Q
, G_VALIDATED_FLAG_TBL_Q
, G_APPLIED_FLAG_TBL_Q
, G_ATTRIBUTE_LEVEL_TBL_Q
, G_ATTRIBUTE_TYPE_TBL_Q
, G_CONTEXT_TBL_Q
, G_ATTRIBUTE_TBL_Q
, G_VALUE_FROM_TBL_Q
, G_GROUPING_NO_TBL_Q
, G_QUALIFIER_PRECEDENCE_TBL_Q
, G_DATATYPE_TBL_Q
, G_SETUP_VALUE_FROM_TBL_Q
, G_SETUP_VALUE_TO_TBL_Q
, G_PRICING_ATTR_FLAG_TBL_Q
, G_OPERATOR_TYPE_TBL_Q
, G_LIST_TYPE_CODE_TBL_Q
, G_ASK_FOR_FLAG_TBL_Q
, G_QUALIFIER_TYPE_TBL_Q
, G_QUALIFIER_GROUP_CNT_TBL_Q
, G_OTHERS_GROUP_CNT_TBL_Q
, G_HEADER_QUALS_EXIST_FLG_TBL_Q
, G_SEARCH_IND_TBL_Q
, G_PRICING_STATUS_CODE_TBL_Q
, G_START_DATE_ACTIVE_TBL_Q
, G_END_DATE_ACTIVE_TBL_Q
, G_LINE_INDEX_TBL_Q
, G_PRICING_EFFECTIVE_DATE_TBL_Q
, G_START_DATE_ACTIVE_FIR_TBL_Q
, G_END_DATE_ACTIVE_FIR_TBL_Q
, G_LINE_TYPE_CODE_TBL_Q
, G_PRICING_PHASE_ID_TBL_Q
, G_UNIQUE_KEY_TBL_Q
, G_START_DATE_ACTIVE_TBL_H_Q
, G_END_DATE_ACTIVE_TBL_H_Q
, G_START_DATE_ACTIVE_SEC_TBL_Q
, G_END_DATE_ACTIVE_SEC_TBL_Q
, G_ACTIVE_DATE_FIR_TYPE_TBL_Q
, G_ACTIVE_DATE_SEC_TYPE_TBL_Q
, G_HEADER_LIMIT_EXISTS_TBL_Q
, l_status_code
, l_status_text);
G_LIST_HEADER_ID_TBL_Q.delete;
G_LIST_LINE_ID_TBL_Q.delete;
G_CONTEXT_TBL_Q.delete;
G_ATTRIBUTE_TBL_Q.delete;
G_VALUE_FROM_TBL_Q.delete;
G_LIST_TYPE_CODE_TBL_Q.delete;
G_ASK_FOR_FLAG_TBL_Q.delete;
G_GROUPING_NO_TBL_Q.delete;
G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
G_OTHERS_GROUP_CNT_TBL_Q.delete;
G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
G_SEARCH_IND_TBL_Q.delete;
G_VALIDATED_FLAG_TBL_Q.delete;
G_APPLIED_FLAG_TBL_Q.delete;
G_ATTRIBUTE_LEVEL_TBL_Q.delete;
G_ATTRIBUTE_TYPE_TBL_Q.delete;
G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
G_DATATYPE_TBL_Q.delete;
G_QUALIFIER_TYPE_TBL_Q.delete;
G_SETUP_VALUE_FROM_TBL_Q.delete;
G_SETUP_VALUE_TO_TBL_Q.delete;
G_PRICING_ATTR_FLAG_TBL_Q.delete;
G_OPERATOR_TYPE_TBL_Q.delete;
G_LINE_INDEX_TBL_Q.delete;
G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
G_LINE_TYPE_CODE_TBL_Q.delete;
G_PRICING_STATUS_CODE_TBL_Q.delete;
G_PRICING_PHASE_ID_TBL_Q.delete;
G_UNIQUE_KEY_TBL_Q.delete;
G_START_DATE_ACTIVE_TBL_H_Q.delete;
G_END_DATE_ACTIVE_TBL_H_Q.delete;
G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
G_DERIVED_QUALIFIER_FLAG_TBL_Q.delete; -- Added for TCA
engine_debug('Inserting no rows into qp_preq_qual_tmp for each line index');
engine_debug('Inserting rows into qp_preq_qual_tmp for each line index: ' || G_LIST_HEADER_ID_TBL_Q.COUNT);
INSERT_QUAL(
G_LIST_HEADER_ID_TBL_Q
, G_LIST_LINE_ID_TBL_Q
, G_VALIDATED_FLAG_TBL_Q
, G_APPLIED_FLAG_TBL_Q
, G_ATTRIBUTE_LEVEL_TBL_Q
, G_ATTRIBUTE_TYPE_TBL_Q
, G_CONTEXT_TBL_Q
, G_ATTRIBUTE_TBL_Q
, G_VALUE_FROM_TBL_Q
, G_GROUPING_NO_TBL_Q
, G_QUALIFIER_PRECEDENCE_TBL_Q
, G_DATATYPE_TBL_Q
, G_SETUP_VALUE_FROM_TBL_Q
, G_SETUP_VALUE_TO_TBL_Q
, G_PRICING_ATTR_FLAG_TBL_Q
, G_OPERATOR_TYPE_TBL_Q
, G_LIST_TYPE_CODE_TBL_Q
, G_ASK_FOR_FLAG_TBL_Q
, G_QUALIFIER_TYPE_TBL_Q
, G_QUALIFIER_GROUP_CNT_TBL_Q
, G_OTHERS_GROUP_CNT_TBL_Q
, G_HEADER_QUALS_EXIST_FLG_TBL_Q
, G_SEARCH_IND_TBL_Q
, G_PRICING_STATUS_CODE_TBL_Q
, G_START_DATE_ACTIVE_TBL_Q
, G_END_DATE_ACTIVE_TBL_Q
, G_LINE_INDEX_TBL_Q
, G_PRICING_EFFECTIVE_DATE_TBL_Q
, G_START_DATE_ACTIVE_FIR_TBL_Q
, G_END_DATE_ACTIVE_FIR_TBL_Q
, G_LINE_TYPE_CODE_TBL_Q
, G_PRICING_PHASE_ID_TBL_Q
, G_UNIQUE_KEY_TBL_Q
, G_START_DATE_ACTIVE_TBL_H_Q
, G_END_DATE_ACTIVE_TBL_H_Q
, G_START_DATE_ACTIVE_SEC_TBL_Q
, G_END_DATE_ACTIVE_SEC_TBL_Q
, G_ACTIVE_DATE_FIR_TYPE_TBL_Q
, G_ACTIVE_DATE_SEC_TYPE_TBL_Q
, G_HEADER_LIMIT_EXISTS_TBL_Q
, G_DERIVED_QUALIFIER_FLAG_TBL_Q
, l_status_code
, l_status_text);
G_LIST_HEADER_ID_TBL_P.delete;
G_LIST_LINE_ID_TBL_P.delete;
G_LIST_LINE_TYPE_TBL_P.delete;
G_LINE_INDEX_TBL_P.delete;
G_VALIDATED_FLAG_TBL_P.delete;
G_APPLIED_FLAG_TBL_P.delete;
G_ATTRIBUTE_LEVEL_TBL_P.delete;
G_ATTRIBUTE_TYPE_TBL_P.delete;
G_CONTEXT_TBL_P.delete;
G_ATTRIBUTE_TBL_P.delete;
G_VALUE_FROM_TBL_P.delete;
G_SETUP_VALUE_FROM_TBL_P.delete;
G_PRICING_ATTR_FLAG_TBL_P.delete;
G_PRODUCT_UOM_CODE_TBL_P.delete;
G_EXCLUDER_FLAG_TBL_P.delete;
G_AUTOMATIC_FLAG_TBL_P.delete;
G_MODIFIER_LEVEL_CODE_TBL_P.delete;
G_NET_AMOUNT_FLAG_TBL_P.delete; --IT net_amount 2720717
G_PRIMARY_UOM_FLAG_TBL_P.delete;
G_OPER_CALCULATION_CODE_TBL_P.delete;
G_OPERAND_VALUE_TBL_P.delete;
G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
G_PRICING_PHASE_ID_TBL_P.delete;
G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
G_INCOMP_GRP_CODE_TBL_P.delete;
G_PRICE_FORMULA_ID_TBL_P.delete;
G_PRODUCT_PRECEDENCE_TBL_P.delete;
G_OVERRIDE_FLAG_TBL_P.delete;
G_BENEFIT_QTY_TBL_P.delete;
G_BENEFIT_UOM_CODE_TBL_P.delete;
G_LIST_LINE_NO_TBL_P.delete;
G_ACCRUAL_FLAG_TBL_P.delete;
G_ACCR_CONVERSION_RATE_TBL_P.delete;
G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
G_ASK_FOR_FLAG_TBL_P.delete;
G_LIST_TYPE_CODE_TBL_P.delete;
G_HEADER_LIMIT_EXISTS_TBL_P.delete;
G_LINE_LIMIT_EXISTS_TBL_P.delete;
G_QUALIFIER_TYPE_TBL_P.delete;
G_CHARGE_TYPE_CODE_TBL_P.delete;
G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
G_ACCUM_CONTEXT_TBL_P.delete; -- for accum range break
G_ACCUM_ATTRIBUTE_TBL_P.delete; -- for accum range break
G_ACCUM_FLAG_TBL_P.delete; -- for accum range break
engine_debug(' Prod Qual List line id selected from big select: '||G_LIST_LINE_ID_TBL_P(I));
G_LIST_HEADER_ID_TBL_P.delete;
G_LIST_LINE_ID_TBL_P.delete;
G_LIST_LINE_TYPE_TBL_P.delete;
G_LINE_INDEX_TBL_P.delete;
G_VALIDATED_FLAG_TBL_P.delete;
G_APPLIED_FLAG_TBL_P.delete;
G_ATTRIBUTE_LEVEL_TBL_P.delete;
G_ATTRIBUTE_TYPE_TBL_P.delete;
G_CONTEXT_TBL_P.delete;
G_ATTRIBUTE_TBL_P.delete;
G_VALUE_FROM_TBL_P.delete;
G_SETUP_VALUE_FROM_TBL_P.delete;
G_PRICING_ATTR_FLAG_TBL_P.delete;
G_PRODUCT_UOM_CODE_TBL_P.delete;
G_EXCLUDER_FLAG_TBL_P.delete;
G_ATTRIBUTE_LEVEL_TBL_PR.delete;
G_ATTRIBUTE_TYPE_TBL_PR.delete;
G_CONTEXT_TBL_PR.delete;
G_ATTRIBUTE_TBL_PR.delete;
G_VALUE_FROM_TBL_PR.delete;
G_OPERATOR_TYPE_TBL_PR.delete;
G_SETUP_VALUE_FROM_TBL_PR.delete;
G_SETUP_VALUE_TO_TBL_PR.delete;
G_DATATYPE_TBL_PR.delete;
G_AUTOMATIC_FLAG_TBL_P.delete;
G_MODIFIER_LEVEL_CODE_TBL_P.delete;
G_PRIMARY_UOM_FLAG_TBL_P.delete;
G_OPER_CALCULATION_CODE_TBL_P.delete;
G_OPERAND_VALUE_TBL_P.delete;
G_NET_AMOUNT_FLAG_TBL_P.delete; -- IT net_amount 2720717
G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
G_PRICING_PHASE_ID_TBL_P.delete;
G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
G_INCOMP_GRP_CODE_TBL_P.delete;
G_PRICE_FORMULA_ID_TBL_P.delete;
G_PRODUCT_PRECEDENCE_TBL_P.delete;
G_OVERRIDE_FLAG_TBL_P.delete;
G_BENEFIT_QTY_TBL_P.delete;
G_BENEFIT_UOM_CODE_TBL_P.delete;
G_LIST_LINE_NO_TBL_P.delete;
G_ACCRUAL_FLAG_TBL_P.delete;
G_ACCR_CONVERSION_RATE_TBL_P.delete;
G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
G_ASK_FOR_FLAG_TBL_P.delete;
G_LIST_TYPE_CODE_TBL_P.delete;
G_HEADER_LIMIT_EXISTS_TBL_P.delete;
G_LINE_LIMIT_EXISTS_TBL_P.delete;
G_QUALIFIER_TYPE_TBL_P.delete;
G_CHARGE_TYPE_CODE_TBL_P.delete;
G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
G_ACCUM_CONTEXT_TBL_P.delete; -- accum range break
G_ACCUM_ATTRIBUTE_TBL_P.delete; -- accum range break
G_ACCUM_FLAG_TBL_P.delete; -- accum range break
engine_debug(' Prod Qual Pric List line id selected from big select: '||G_LIST_LINE_ID_TBL_P(I) );
G_LIST_HEADER_ID_TBL_Q.delete;
G_LIST_LINE_ID_TBL_Q.delete;
G_LIST_LINE_TYPE_TBL_Q.delete;
G_LINE_INDEX_TBL_Q.delete;
G_AUTOMATIC_FLAG_TBL_Q.delete;
G_MODIFIER_LEVEL_CODE_TBL_Q.delete;
G_PRIMARY_UOM_FLAG_TBL_Q.delete;
G_OPER_CALCULATION_CODE_TBL_Q.delete;
G_OPERAND_TBL_Q.delete;
G_NET_AMOUNT_FLAG_TBL_Q.delete; -- IT net_amount 2720717
G_PRICING_GROUP_SEQUENCE_TBL_Q.delete;
G_PRICING_PHASE_ID_TBL_Q.delete;
G_PRICE_BREAK_TYPE_CODE_TBL_Q.delete;
G_INCOMP_GRP_CODE_TBL_Q.delete;
G_PRICE_FORMULA_ID_TBL_Q.delete;
G_PRODUCT_PRECEDENCE_TBL_Q.delete;
G_OVERRIDE_FLAG_TBL_P.delete;
G_BENEFIT_QTY_TBL_P.delete;
G_BENEFIT_UOM_CODE_TBL_P.delete;
G_LIST_LINE_NO_TBL_Q.delete;
G_ACCRUAL_FLAG_TBL_Q.delete;
G_ACCR_CONVERSION_RATE_TBL_Q.delete;
G_ESTIM_ACCRUAL_RATE_TBL_Q.delete;
G_ASK_FOR_FLAG_TBL_Q.delete;
G_LIST_TYPE_CODE_TBL_Q.delete;
G_QUALIFIER_TYPE_TBL_Q.delete;
G_HEADER_LIMIT_EXISTS_TBL_P.delete;
G_LINE_LIMIT_EXISTS_TBL_P.delete;
G_CHARGE_TYPE_CODE_TBL_P.delete;
G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
G_ACCUM_CONTEXT_TBL_P.delete; -- for accum range break
G_ACCUM_ATTRIBUTE_TBL_P.delete; -- for accum range break
G_ACCUM_FLAG_TBL_P.delete; -- for accum range break
G_LIST_HEADER_ID_TBL_P.delete;
G_LIST_LINE_ID_TBL_P.delete;
G_LIST_LINE_TYPE_TBL_P.delete;
G_LINE_INDEX_TBL_P.delete;
G_VALIDATED_FLAG_TBL_P.delete;
G_APPLIED_FLAG_TBL_P.delete;
G_ATTRIBUTE_LEVEL_TBL_P.delete;
G_ATTRIBUTE_TYPE_TBL_P.delete;
G_CONTEXT_TBL_P.delete;
G_ATTRIBUTE_TBL_P.delete;
G_VALUE_FROM_TBL_P.delete;
G_SETUP_VALUE_FROM_TBL_P.delete;
G_PRICING_ATTR_FLAG_TBL_P.delete;
G_PRODUCT_UOM_CODE_TBL_P.delete;
G_EXCLUDER_FLAG_TBL_P.delete;
G_GROUPING_NUMBER_TBL_P.delete;
G_QUALIFIER_PRECEDENCE_TBL_P.delete;
G_AUTOMATIC_FLAG_TBL_P.delete;
G_MODIFIER_LEVEL_CODE_TBL_P.delete;
G_PRIMARY_UOM_FLAG_TBL_P.delete;
G_OPER_CALCULATION_CODE_TBL_P.delete;
G_OPERAND_VALUE_TBL_P.delete;
G_NET_AMOUNT_FLAG_TBL_P.delete; -- IT net_amount 2720717
G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
G_ASK_FOR_FLAG_TBL_P.delete;
G_LIST_TYPE_CODE_TBL_P.delete;
G_PRICING_PHASE_ID_TBL_P.delete;
G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
G_INCOMP_GRP_CODE_TBL_P.delete;
G_PRICE_FORMULA_ID_TBL_P.delete;
G_PRODUCT_PRECEDENCE_TBL_P.delete;
G_OVERRIDE_FLAG_TBL_P.delete;
G_BENEFIT_QTY_TBL_P.delete;
G_BENEFIT_UOM_CODE_TBL_P.delete;
G_LIST_LINE_NO_TBL_P.delete;
G_ACCRUAL_FLAG_TBL_P.delete;
G_ACCR_CONVERSION_RATE_TBL_P.delete;
G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
G_HEADER_LIMIT_EXISTS_TBL_P.delete;
G_LINE_LIMIT_EXISTS_TBL_P.delete;
G_QUALIFIER_TYPE_TBL_P.delete;
G_CHARGE_TYPE_CODE_TBL_P.delete;
G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
G_ACCUM_CONTEXT_TBL_P.delete; -- for accum range break
G_ACCUM_ATTRIBUTE_TBL_P.delete; -- for accum range break
G_ACCUM_FLAG_TBL_P.delete; -- for accum range break
engine_debug('List line id selected from l_prod_cur_mod: '||g_list_line_id_TBL_P(I));
engine_debug('Excluder Flag selected from big select1: '||g_excluder_flag_TBL_P(I));
engine_debug('Before Insert Excluder Flag selected from big select1: '||g_excluder_flag_TBL_P(I));
G_LIST_HEADER_ID_TBL_P.delete;
G_LIST_LINE_ID_TBL_P.delete;
G_LIST_LINE_TYPE_TBL_P.delete;
G_LINE_INDEX_TBL_P.delete;
G_VALIDATED_FLAG_TBL_P.delete;
G_APPLIED_FLAG_TBL_P.delete;
G_ATTRIBUTE_LEVEL_TBL_P.delete;
G_ATTRIBUTE_TYPE_TBL_P.delete;
G_CONTEXT_TBL_P.delete;
G_ATTRIBUTE_TBL_P.delete;
G_VALUE_FROM_TBL_P.delete;
G_SETUP_VALUE_FROM_TBL_P.delete;
G_PRICING_ATTR_FLAG_TBL_P.delete;
G_PRODUCT_UOM_CODE_TBL_P.delete;
G_EXCLUDER_FLAG_TBL_P.delete;
G_GROUPING_NUMBER_TBL_P.delete;
G_QUALIFIER_PRECEDENCE_TBL_P.delete;
G_AUTOMATIC_FLAG_TBL_P.delete;
G_MODIFIER_LEVEL_CODE_TBL_P.delete;
G_PRIMARY_UOM_FLAG_TBL_P.delete;
G_OPER_CALCULATION_CODE_TBL_P.delete;
G_OPERAND_VALUE_TBL_P.delete;
G_NET_AMOUNT_FLAG_TBL_P.delete; -- IT net_amount 2720717
G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
G_ASK_FOR_FLAG_TBL_P.delete;
G_LIST_TYPE_CODE_TBL_P.delete;
G_PRICING_PHASE_ID_TBL_P.delete;
G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
G_INCOMP_GRP_CODE_TBL_P.delete;
G_PRICE_FORMULA_ID_TBL_P.delete;
G_PRODUCT_PRECEDENCE_TBL_P.delete;
G_OVERRIDE_FLAG_TBL_P.delete;
G_PRINT_ON_INVOICE_FLAG_TBL_P.delete;
G_BENEFIT_QTY_TBL_P.delete;
G_BENEFIT_UOM_CODE_TBL_P.delete;
G_LIST_LINE_NO_TBL_P.delete;
G_ACCRUAL_FLAG_TBL_P.delete;
G_ACCR_CONVERSION_RATE_TBL_P.delete;
G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
G_QUALIFIER_TYPE_TBL_P.delete;
G_ATTRIBUTE_LEVEL_TBL_PR.delete;
G_ATTRIBUTE_TYPE_TBL_PR.delete;
G_CONTEXT_TBL_PR.delete;
G_ATTRIBUTE_TBL_PR.delete;
G_VALUE_FROM_TBL_PR.delete;
G_OPERATOR_TYPE_TBL_PR.delete;
G_SETUP_VALUE_FROM_TBL_PR.delete;
G_SETUP_VALUE_TO_TBL_PR.delete;
G_DATATYPE_TBL_PR.delete;
G_HEADER_LIMIT_EXISTS_TBL_P.delete;
G_LINE_LIMIT_EXISTS_TBL_P.delete;
G_CHARGE_TYPE_CODE_TBL_P.delete;
G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
G_ACCUM_CONTEXT_TBL_P.delete; -- for accum range break
G_ACCUM_ATTRIBUTE_TBL_P.delete; -- for accum range break
G_ACCUM_FLAG_TBL_P.delete; -- for accum range break
engine_debug('List line id selected from l_prod_pric_cur_mod: '||G_LIST_LINE_ID_TBL_P(I) );
G_LINE_INDEX_TBL_B.delete;
G_LIST_HEADER_ID_TBL_B.delete;
G_LIST_LINE_ID_TBL_B.delete;
G_PRICE_BREAK_TYPE_CODE_TBL_B.delete ;
G_LIST_LINE_TYPE_TBL_B.delete;
G_LIST_TYPE_CODE_TBL_B.delete;
G_PRICING_GROUP_SEQUENCE_TBL_B.delete;
G_PRICING_PHASE_ID_TBL_B.delete;
G_OPER_CALCULATION_CODE_TBL_B.delete;
G_OPERAND_VALUE_TBL_B.delete;
G_NET_AMOUNT_FLAG_TBL_B.delete; -- IT net_amount 2720717
G_ASK_FOR_FLAG_TBL_B.delete;
G_PRICE_FORMULA_ID_TBL_B.delete;
G_PRODUCT_PRECEDENCE_TBL_B.delete;
G_INCOMP_GRP_CODE_TBL_B.delete;
G_AUTOMATIC_FLAG_TBL_B.delete;
G_OVERRIDE_FLAG_TBL_B.delete;
G_PRIMARY_UOM_FLAG_TBL_B.delete;
G_PRINT_ON_INVOICE_FLAG_TBL_B.delete;
G_MODIFIER_LEVEL_CODE_TBL_B.delete;
G_BENEFIT_QTY_TBL_B.delete;
G_BENEFIT_UOM_CODE_TBL_B.delete;
G_LIST_LINE_NO_TBL_B.delete;
G_ACCRUAL_FLAG_TBL_B.delete;
G_ACCR_CONVERSION_RATE_TBL_B.delete;
G_ESTIM_ACCRUAL_RATE_TBL_B.delete;
G_HEADER_LIMIT_EXISTS_TBL_P.delete;
G_LINE_LIMIT_EXISTS_TBL_P.delete;
G_CHARGE_TYPE_CODE_TBL_P.delete;
G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
G_ACCUM_CONTEXT_TBL_P.delete; -- for accum range break
G_ACCUM_ATTRIBUTE_TBL_P.delete; -- for accum range break
G_ACCUM_FLAG_TBL_P.delete; -- for accum range break
engine_debug('List line id selected from blind cur: '||G_LIST_LINE_ID_TBL_B(I) );
engine_debug( '38: ' || G_SELECTED_VOLUME_ATTR_TBL(Z));
INSERT_LDETS_PVT( p_LINE_DETAIL_index => G_LINE_DETAIL_INDEX_LD_TBL,
p_LINE_DETAIL_TYPE_CODE => G_LINE_DETAIL_TYPE_CODE_TBL,
p_PRICE_BREAK_TYPE_CODE => G_PRICE_BREAK_TYPE_CODE_TBL,
p_LINE_INDEX => G_LINE_INDEX_LD_TBL,
p_CREATED_FROM_LIST_HEADER_ID =>G_LIST_HEADER_ID_LD_TBL,
p_CREATED_FROM_LIST_LINE_ID =>G_LIST_LINE_ID_LD_TBL,
p_CREATED_FROM_LIST_LINE_TYPE =>G_LIST_LINE_TYPE_TBL,
p_CREATED_FROM_LIST_TYPE_CODE =>G_LIST_TYPE_CODE_TBL,
p_CREATED_FROM_SQL =>G_CREATED_FROM_SQL_TBL,
p_PRICING_GROUP_SEQUENCE =>G_PRICING_GROUP_SEQUENCE_TBL,
P_PRICING_PHASE_ID =>G_PRICING_PHASE_ID_TBL,
p_OPERAND_CALCULATION_CODE =>G_OPERAND_CALCULATION_CODE_TBL,
p_OPERAND_VALUE =>G_OPERAND_VALUE_TBL,
p_NET_AMOUNT_FLAG =>G_NET_AMOUNT_FLAG_TBL, -- IT net_amount 2720717
p_ASK_FOR_FLAG =>G_ASK_FOR_FLAG_TBL,
p_PRICE_FORMULA_ID =>G_PRICE_FORMULA_ID_TBL,
p_PRICING_STATUS_CODE =>G_PRICING_STATUS_CODE_LD_TBL,
p_PRICING_STATUS_TEXT =>G_PRICING_STATUS_TEXT_LD_TBL,
p_PRODUCT_PRECEDENCE =>G_PRODUCT_PRECEDENCE_TBL ,
p_INCOMPATABLILITY_GRP_CODE =>G_INCOMP_GRP_CODE_TBL,
p_PROCESSED_FLAG =>G_PROCESSED_FLAG_LD_TBL,
p_APPLIED_FLAG =>G_APPLIED_FLAG_LD_TBL,
p_AUTOMATIC_FLAG =>G_AUTOMATIC_FLAG_TBL,
p_OVERRIDE_FLAG =>G_OVERRIDE_FLAG_TBL,
p_PRIMARY_UOM_FLAG =>G_PRIMARY_UOM_FLAG_TBL,
p_MODIFIER_LEVEL_CODE =>G_MODIFIER_LEVEL_CODE_TBL,
p_BENEFIT_QTY =>G_BENEFIT_QTY_TBL,
p_BENEFIT_UOM_CODE =>G_BENEFIT_UOM_CODE_TBL,
p_LIST_LINE_NO =>G_LIST_LINE_NO_TBL,
p_ACCRUAL_FLAG =>G_ACCRUAL_FLAG_TBL,
p_ACCRUAL_CONVERSION_RATE =>G_ACCRUAL_CONVERSION_RATE_TBL,
p_ESTIM_ACCRUAL_RATE =>G_ESTIM_ACCRUAL_RATE_TBL,
p_HEADER_LIMIT_EXISTS =>G_HEADER_LIMIT_EXISTS_TBL,
p_LINE_LIMIT_EXISTS =>G_LINE_LIMIT_EXISTS_TBL,
p_CHARGE_TYPE_CODE =>G_CHARGE_TYPE_CODE_TBL,
p_CHARGE_SUBTYPE_CODE =>G_CHARGE_SUBTYPE_CODE_TBL,
p_ACCUM_CONTEXT =>G_ACCUM_CONTEXT_TBL, -- accum range break
p_ACCUM_ATTRIBUTE =>G_ACCUM_ATTRIBUTE_TBL, -- accum range break
p_ACCUM_FLAG =>G_ACCUM_FLAG_TBL, -- accum range break
x_status_code =>l_status_code,
x_status_text =>l_status_text
);
INSERT_LINE_ATTRS2
( p_LINE_INDEX_tbl =>G_LINE_INDEX_tbl,
p_LINE_DETAIL_INDEX_tbl =>G_LINE_DETAIL_INDEX_tbl,
p_ATTRIBUTE_LEVEL_tbl =>G_ATTRIBUTE_LEVEL_tbl,
p_ATTRIBUTE_TYPE_tbl =>G_ATTRIBUTE_TYPE_tbl,
p_LIST_HEADER_ID_tbl =>G_LIST_HEADER_ID_tbl,
p_LIST_LINE_ID_tbl =>G_LIST_LINE_ID_tbl,
p_CONTEXT_tbl =>G_CONTEXT_tbl,
p_ATTRIBUTE_tbl =>G_ATTRIBUTE_tbl,
p_VALUE_FROM_tbl =>G_VALUE_FROM_tbl,
p_SETUP_VALUE_FROM_tbl =>G_SETUP_VALUE_FROM_tbl,
p_VALUE_TO_tbl =>G_VALUE_TO_tbl,
p_SETUP_VALUE_TO_tbl =>G_SETUP_VALUE_TO_tbl,
p_GROUPING_NUMBER_tbl => G_GROUPING_NUMBER_tbl,
p_NO_QUALIFIERS_IN_GRP_tbl =>G_NO_QUALIFIERS_IN_GRP_tbl,
p_COMPARISON_OPERATOR_TYPE_tbl =>G_COMPARISON_OPERATOR_TYPE_tbl,
p_VALIDATED_FLAG_tbl =>G_VALIDATED_FLAG_tbl,
p_APPLIED_FLAG_tbl =>G_APPLIED_FLAG_tbl,
p_PRICING_STATUS_CODE_tbl =>G_PRICING_STATUS_CODE_tbl,
p_PRICING_STATUS_TEXT_tbl =>G_PRICING_STATUS_TEXT_tbl,
p_QUALIFIER_PRECEDENCE_tbl =>G_QUALIFIER_PRECEDENCE_tbl,
p_DATATYPE_tbl =>G_DATATYPE_tbl,
p_PRICING_ATTR_FLAG_tbl =>G_PRICING_ATTR_FLAG_tbl,
p_QUALIFIER_TYPE_tbl =>G_QUALIFIER_TYPE_TBL,
p_product_uom_code_tbl =>G_PRODUCT_UOM_CODE_TBL,
p_excluder_flag_tbl =>G_EXCLUDER_FLAG_TBL,
p_PRICING_PHASE_ID_TBL =>G_PRICING_PHASE_ID_TBL_A,
p_INCOMPATABILITY_GRP_CODE_TBL =>G_INCOMP_GRP_CODE_TBL_A,
p_LINE_DETAIL_TYPE_CODE_TBL =>G_LINE_DETAIL_TYPE_CODE_TBL_A,
p_MODIFIER_LEVEL_CODE_TBL =>G_MODIFIER_LEVEL_CODE_TBL_A,
p_PRIMARY_UOM_FLAG_TBL =>G_PRIMARY_UOM_FLAG_TBL_A,
x_status_code =>l_status_code,
x_status_text =>l_status_text);
engine_debug('Before Inserting attributes in excluded cursor');
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,QP_PRICING_ATTRIBUTES_N2,LIST_LINE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,QP_PRICING_ATTRIBUTES_N2,EXCLUDER_FLAG,2
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_ldets_tmp_N2,PRICING_PHASE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_ldets_tmp_N2,PRICING_STATUS_CODE,2
*/
-- Delete Excluded Line Details Directly if the inner select returns an excluded row
UPDATE qp_npreq_ldets_tmp a
SET pricing_status_code = 'D_EXCLUDER'
WHERE pricing_phase_id = p_pricing_phase_id
AND pricing_status_code = G_STATUS_NEW
AND EXISTS ( SELECT/*+ ORDERED USE_NL(c) index(c qp_preq_line_attrs_tmp_N2) index(b QP_PRICING_ATTRIBUTES_N2) l_excl_cur */
'x'
FROM qp_pricing_attributes b,
qp_npreq_line_attrs_tmp c
WHERE b.list_line_id = a.created_from_list_line_id
AND b.excluder_flag = G_YES
AND b.product_attribute_context = c.context
AND b.product_attribute = c.attribute
AND b.product_attr_value = c.value_from
AND c.attribute_type = G_PRODUCT_TYPE
AND c.pricing_status_code = G_STATUS_UNCHANGED
AND c.line_index = a.line_index);
G_LIST_HEADER_ID_TBL_P.delete;
G_LIST_LINE_ID_TBL_P.delete;
G_LINE_INDEX_TBL_P.delete;
G_VALIDATED_FLAG_TBL_P.delete;
G_APPLIED_FLAG_TBL_P.delete;
G_ATTRIBUTE_LEVEL_TBL_P.delete;
G_ATTRIBUTE_TYPE_TBL_P.delete;
G_CONTEXT_TBL_P.delete;
G_ATTRIBUTE_TBL_P.delete;
G_VALUE_FROM_TBL_P.delete;
G_SETUP_VALUE_FROM_TBL_P.delete;
G_PRICING_ATTR_FLAG_TBL_P.delete;
G_PRODUCT_UOM_CODE_TBL_P.delete;
G_EXCLUDER_FLAG_TBL_P.delete;
G_QUALIFIER_PRECEDENCE_TBL_P.delete;
G_LINE_DETAIL_INDEX_TBL_P.delete;
engine_debug('Inserting attributes in excluded cursor : ' || G_LINE_INDEX_TBL_P(I));
INSERT_LINE_ATTRS2
( p_LINE_INDEX_tbl =>G_LINE_INDEX_tbl,
p_LINE_DETAIL_INDEX_tbl =>G_LINE_DETAIL_INDEX_tbl,
p_ATTRIBUTE_LEVEL_tbl =>G_ATTRIBUTE_LEVEL_tbl,
p_ATTRIBUTE_TYPE_tbl =>G_ATTRIBUTE_TYPE_tbl,
p_LIST_HEADER_ID_tbl =>G_LIST_HEADER_ID_tbl,
p_LIST_LINE_ID_tbl =>G_LIST_LINE_ID_tbl,
p_CONTEXT_tbl =>G_CONTEXT_tbl,
p_ATTRIBUTE_tbl =>G_ATTRIBUTE_tbl,
p_VALUE_FROM_tbl =>G_VALUE_FROM_tbl,
p_SETUP_VALUE_FROM_tbl =>G_SETUP_VALUE_FROM_tbl,
p_VALUE_TO_tbl =>G_VALUE_TO_tbl,
p_SETUP_VALUE_TO_tbl =>G_SETUP_VALUE_TO_tbl,
p_GROUPING_NUMBER_tbl => G_GROUPING_NUMBER_tbl,
p_NO_QUALIFIERS_IN_GRP_tbl =>G_NO_QUALIFIERS_IN_GRP_tbl,
p_COMPARISON_OPERATOR_TYPE_tbl =>G_COMPARISON_OPERATOR_TYPE_tbl,
p_VALIDATED_FLAG_tbl =>G_VALIDATED_FLAG_tbl,
p_APPLIED_FLAG_tbl =>G_APPLIED_FLAG_tbl,
p_PRICING_STATUS_CODE_tbl =>G_PRICING_STATUS_CODE_tbl,
p_PRICING_STATUS_TEXT_tbl =>G_PRICING_STATUS_TEXT_tbl,
p_QUALIFIER_PRECEDENCE_tbl =>G_QUALIFIER_PRECEDENCE_tbl,
p_DATATYPE_tbl =>G_DATATYPE_tbl,
p_PRICING_ATTR_FLAG_tbl =>G_PRICING_ATTR_FLAG_tbl,
p_QUALIFIER_TYPE_tbl =>G_QUALIFIER_TYPE_TBL,
p_product_uom_code_tbl =>G_PRODUCT_UOM_CODE_TBL,
p_excluder_flag_tbl =>G_EXCLUDER_FLAG_TBL,
p_PRICING_PHASE_ID_TBL =>G_PRICING_PHASE_ID_TBL_A,
p_INCOMPATABILITY_GRP_CODE_TBL =>G_INCOMP_GRP_CODE_TBL_A,
p_LINE_DETAIL_TYPE_CODE_TBL =>G_LINE_DETAIL_TYPE_CODE_TBL_A,
p_MODIFIER_LEVEL_CODE_TBL =>G_MODIFIER_LEVEL_CODE_TBL_A,
p_PRIMARY_UOM_FLAG_TBL =>G_PRIMARY_UOM_FLAG_TBL_A,
x_status_code =>l_status_code,
x_status_text =>l_status_text);
engine_debug('< In Select_modifiers>: '||SQLERRM);
END SELECT_MODIFIERS;
|PROCEDURE SELECT_PRICE_LIST_LINES
+----------------------------------------------------------
*/
PROCEDURE SELECT_PRICE_LIST_LINES(p_pricing_phase_id IN NUMBER,
p_freeze_override_flag IN VARCHAR2,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2,
p_control_rec IN CONTROL_RECORD_TYPE) -- vivek
AS
-- [julin/4742368/4766135] Added QP_QUALIFIERS_N1 hint to prevent db from using N2
--[julin/5007789] Tuned query as follows:
-- 1. Performing line filter first.
-- 2. Performing qualifier filter before product filter
-- 3. Split into unions ('=', 'BETWEEN', 'NOT =') for better use of indexes
CURSOR l_prod_qual_cur (p_pricing_phase_id NUMBER) IS
-- Product and Qualifier Only. No pricing
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPL)
INDEX(QPLATQ QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPQ QP_QUALIFIERS_N4)
l_prod_qual_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qplatq.context qualifier_attribute_context,
qplatq.attribute qualifier_attribute,
qplatq.value_from qualifier_attribute_value,
qpq.qualifier_grouping_no qualifier_grouping_no,
qpq.qualifier_precedence qualifier_precedence,
qpq.qualifier_datatype,
qpq.qualifier_attr_value setup_value_from,
qpq.qualifier_attr_value_to setup_value_to,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
'HQ' qualifier_type
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq,
qp_list_headers_b qph,
qp_price_req_sources_v qprs,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod,
qp_list_lines qpl
WHERE qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
-- 3594459, context and attribute OR'd together
AND (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND qpq.list_header_id = qph.list_header_id
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qpq.list_line_id = -1
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpl.list_line_id = qpprod.list_line_id
AND qph.currency_code = qplines.currency_code
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, qplines.pricing_effective_date) and
nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpq.qualifier_context = qplatq.context
AND qpq.qualifier_attribute = qplatq.attribute
AND qpq.comparison_operator_code = '=' --[julin/5007789]
AND qplatq.value_from = qpq.qualifier_attr_value --bug#1761272 Multiple NOT =, [julin/5007789]
AND qpq.active_flag = G_YES
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qplatq.line_index = qplines.line_index
AND qplatpr.line_index = qplines.line_index --[julin/5007789]
AND qplatpr.line_index = qplatq.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPL)
INDEX(QPLATQ QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPQ QP_QUALIFIERS_N5)
l_prod_qual_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qplatq.context qualifier_attribute_context,
qplatq.attribute qualifier_attribute,
qplatq.value_from qualifier_attribute_value,
qpq.qualifier_grouping_no qualifier_grouping_no,
qpq.qualifier_precedence qualifier_precedence,
qpq.qualifier_datatype,
qpq.qualifier_attr_value setup_value_from,
qpq.qualifier_attr_value_to setup_value_to,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
'HQ' qualifier_type
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq,
qp_list_headers_b qph,
qp_price_req_sources_v qprs,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod,
qp_list_lines qpl
WHERE qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
-- 3594459, context and attribute OR'd together
AND (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND qpq.list_header_id = qph.list_header_id
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qpq.list_line_id = -1
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpl.list_line_id = qpprod.list_line_id
AND qph.currency_code = qplines.currency_code
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, qplines.pricing_effective_date) and
nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpq.qualifier_context = qplatq.context
AND qpq.qualifier_attribute = qplatq.attribute
AND qpq.comparison_operator_code = 'NOT =' --[julin/5007789]
AND qpq.active_flag = G_YES
AND qplatq.value_from <> qpq.qualifier_attr_value --[julin/5007789]
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qplatq.line_index = qplines.line_index
AND qplatpr.line_index = qplines.line_index --[julin/5007789]
AND qplatpr.line_index = qplatq.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPL)
INDEX(QPLATQ QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPQ QP_QUALIFIERS_N6)
l_prod_qual_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qplatq.context qualifier_attribute_context,
qplatq.attribute qualifier_attribute,
qplatq.value_from qualifier_attribute_value,
qpq.qualifier_grouping_no qualifier_grouping_no,
qpq.qualifier_precedence qualifier_precedence,
qpq.qualifier_datatype,
qpq.qualifier_attr_value setup_value_from,
qpq.qualifier_attr_value_to setup_value_to,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
'HQ' qualifier_type
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq,
qp_list_headers_b qph,
qp_price_req_sources_v qprs,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod,
qp_list_lines qpl
WHERE qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
-- 3594459, context and attribute OR'd together
AND (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND qpq.list_header_id = qph.list_header_id
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qpq.list_line_id = -1
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpl.list_line_id = qpprod.list_line_id
AND qph.currency_code = qplines.currency_code
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, qplines.pricing_effective_date) and
nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpq.qualifier_context = qplatq.context
AND qpq.qualifier_attribute = qplatq.attribute
AND qpq.comparison_operator_code = G_OPERATOR_BETWEEN --[julin/5007789]
AND qpq.active_flag = G_YES
and ((qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y) --[julin/5007789]
and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to)
or
(qpq.qualifier_datatype = G_NUMERIC
and qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number))
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qplatq.line_index = qplines.line_index
AND qplatpr.line_index = qplines.line_index --[julin/5007789]
AND qplatpr.line_index = qplatq.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
ORDER BY 4,2;
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPL)
INDEX(QPLATQ QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPQ QP_QUALIFIERS_N4)
l_prod_qual_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qplatq.context qualifier_attribute_context,
qplatq.attribute qualifier_attribute,
qplatq.value_from qualifier_attribute_value,
qpq.qualifier_grouping_no qualifier_grouping_no,
qpq.qualifier_precedence qualifier_precedence,
qpq.qualifier_datatype,
qpq.qualifier_attr_value setup_value_from,
qpq.qualifier_attr_value_to setup_value_to,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
'HQ' qualifier_type,
qcdt.currency_detail_id,
qcdt.currency_header_id,
qcdt.selling_rounding_factor,
qplines.currency_code order_currency,
qplines.pricing_effective_date pricing_effective_date,
qph.currency_code base_currency_code
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq,
qp_list_headers_b qph,
qp_price_req_sources_v qprs,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod,
qp_list_lines qpl,
qp_currency_details qcdt
WHERE qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
-- 3594459, context and attribute OR'd together
AND (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND qpq.list_header_id = qph.list_header_id
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qpq.list_line_id = -1
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpl.list_line_id = qpprod.list_line_id
--AND qph.currency_code = qplines.currency_code
AND qph.currency_header_id = qcdt.currency_header_id
AND qplines.currency_code = qcdt.to_currency_code
AND nvl(qplines.pricing_effective_date,trunc(sysdate)) between
nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date) and
nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
(qcdt.curr_attribute_context is null
and not exists
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1
where qcdt1.curr_attribute_context IS NOT NULL
and qcdt1.curr_attribute_context = pa_tmp.context
and qcdt1.curr_attribute = pa_tmp.attribute
and qcdt1.curr_attribute_value = pa_tmp.value_from
and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
and qcdt1.to_currency_code = qcdt.to_currency_code
and qcdt1.currency_header_id = qcdt.currency_header_id
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
OR
(qcdt.curr_attribute_context is not null
and qcdt.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
where qcdt2.curr_attribute_context IS NOT NULL
and qcdt2.curr_attribute_context = pa_tmp1.context
and qcdt2.curr_attribute = pa_tmp1.attribute
and qcdt2.curr_attribute_value = pa_tmp1.value_from
and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
and qcdt2.to_currency_code = qcdt.to_currency_code
and qcdt2.currency_header_id = qcdt.currency_header_id
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp1.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, qplines.pricing_effective_date) and
nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpq.qualifier_context = qplatq.context
AND qpq.qualifier_attribute = qplatq.attribute
AND qpq.comparison_operator_code = '=' --[julin/5007789]
AND qplatq.value_from = qpq.qualifier_attr_value --bug#1761272 Multiple NOT =, [julin/5007789]
AND qpq.active_flag = G_YES
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qplatq.line_index = qplines.line_index
AND qplatpr.line_index = qplines.line_index --[julin/5007789]
AND qplatpr.line_index = qplatq.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPL)
INDEX(QPLATQ QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPQ QP_QUALIFIERS_N5)
l_prod_qual_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qplatq.context qualifier_attribute_context,
qplatq.attribute qualifier_attribute,
qplatq.value_from qualifier_attribute_value,
qpq.qualifier_grouping_no qualifier_grouping_no,
qpq.qualifier_precedence qualifier_precedence,
qpq.qualifier_datatype,
qpq.qualifier_attr_value setup_value_from,
qpq.qualifier_attr_value_to setup_value_to,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
'HQ' qualifier_type,
qcdt.currency_detail_id,
qcdt.currency_header_id,
qcdt.selling_rounding_factor,
qplines.currency_code order_currency,
qplines.pricing_effective_date pricing_effective_date,
qph.currency_code base_currency_code
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq,
qp_list_headers_b qph,
qp_price_req_sources_v qprs,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod,
qp_list_lines qpl,
qp_currency_details qcdt
WHERE qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
-- 3594459, context and attribute OR'd together
AND (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND qpq.list_header_id = qph.list_header_id
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qpq.list_line_id = -1
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpl.list_line_id = qpprod.list_line_id
--AND qph.currency_code = qplines.currency_code
AND qph.currency_header_id = qcdt.currency_header_id
AND qplines.currency_code = qcdt.to_currency_code
AND nvl(qplines.pricing_effective_date,trunc(sysdate)) between
nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date) and
nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
(qcdt.curr_attribute_context is null
and not exists
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1
where qcdt1.curr_attribute_context IS NOT NULL
and qcdt1.curr_attribute_context = pa_tmp.context
and qcdt1.curr_attribute = pa_tmp.attribute
and qcdt1.curr_attribute_value = pa_tmp.value_from
and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
and qcdt1.to_currency_code = qcdt.to_currency_code
and qcdt1.currency_header_id = qcdt.currency_header_id
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
OR
(qcdt.curr_attribute_context is not null
and qcdt.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
where qcdt2.curr_attribute_context IS NOT NULL
and qcdt2.curr_attribute_context = pa_tmp1.context
and qcdt2.curr_attribute = pa_tmp1.attribute
and qcdt2.curr_attribute_value = pa_tmp1.value_from
and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
and qcdt2.to_currency_code = qcdt.to_currency_code
and qcdt2.currency_header_id = qcdt.currency_header_id
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp1.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, qplines.pricing_effective_date) and
nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpq.qualifier_context = qplatq.context
AND qpq.qualifier_attribute = qplatq.attribute
AND qpq.comparison_operator_code = 'NOT =' --[julin/5007789]
AND qpq.active_flag = G_YES
AND qplatq.value_from <> qpq.qualifier_attr_value --[julin/5007789]
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qplatq.line_index = qplines.line_index
AND qplatpr.line_index = qplines.line_index --[julin/5007789]
AND qplatpr.line_index = qplatq.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPL)
INDEX(QPLATQ QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPQ QP_QUALIFIERS_N6)
l_prod_qual_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qplatq.context qualifier_attribute_context,
qplatq.attribute qualifier_attribute,
qplatq.value_from qualifier_attribute_value,
qpq.qualifier_grouping_no qualifier_grouping_no,
qpq.qualifier_precedence qualifier_precedence,
qpq.qualifier_datatype,
qpq.qualifier_attr_value setup_value_from,
qpq.qualifier_attr_value_to setup_value_to,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
'HQ' qualifier_type,
qcdt.currency_detail_id,
qcdt.currency_header_id,
qcdt.selling_rounding_factor,
qplines.currency_code order_currency,
qplines.pricing_effective_date pricing_effective_date,
qph.currency_code base_currency_code
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq,
qp_list_headers_b qph,
qp_price_req_sources_v qprs,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod,
qp_list_lines qpl,
qp_currency_details qcdt
WHERE qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
-- 3594459, context and attribute OR'd together
AND (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND qpq.list_header_id = qph.list_header_id
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qpq.list_line_id = -1
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpl.list_line_id = qpprod.list_line_id
--AND qph.currency_code = qplines.currency_code
AND qph.currency_header_id = qcdt.currency_header_id
AND qplines.currency_code = qcdt.to_currency_code
AND nvl(qplines.pricing_effective_date,trunc(sysdate)) between
nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date) and
nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
(qcdt.curr_attribute_context is null
and not exists
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1
where qcdt1.curr_attribute_context IS NOT NULL
and qcdt1.curr_attribute_context = pa_tmp.context
and qcdt1.curr_attribute = pa_tmp.attribute
and qcdt1.curr_attribute_value = pa_tmp.value_from
and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
and qcdt1.to_currency_code = qcdt.to_currency_code
and qcdt1.currency_header_id = qcdt.currency_header_id
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
OR
(qcdt.curr_attribute_context is not null
and qcdt.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
where qcdt2.curr_attribute_context IS NOT NULL
and qcdt2.curr_attribute_context = pa_tmp1.context
and qcdt2.curr_attribute = pa_tmp1.attribute
and qcdt2.curr_attribute_value = pa_tmp1.value_from
and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
and qcdt2.to_currency_code = qcdt.to_currency_code
and qcdt2.currency_header_id = qcdt.currency_header_id
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp1.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, qplines.pricing_effective_date) and
nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpq.qualifier_context = qplatq.context
AND qpq.qualifier_attribute = qplatq.attribute
AND qpq.comparison_operator_code = G_OPERATOR_BETWEEN --[julin/5007789]
AND qpq.active_flag = G_YES
and ((qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y) --[julin/5007789]
and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to)
or
(qpq.qualifier_datatype = G_NUMERIC
and qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number))
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qplatq.line_index = qplines.line_index
AND qplatpr.line_index = qplines.line_index --[julin/5007789]
AND qplatpr.line_index = qplatq.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
ORDER BY 4,2;
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPLATPC QPL)
index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2)
index(qplatq QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5)
INDEX(QPQ QP_QUALIFIERS_N4)
l_prod_qual_pric_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qplatq.context qualifier_attribute_context,
qplatq.attribute qualifier_attribute,
qplatq.value_from qualifier_attribute_value,
qpq.qualifier_grouping_no qualifier_grouping_no,
qpq.qualifier_precedence qualifier_precedence,
qpq.qualifier_datatype,
qpq.qualifier_attr_value setup_value_from,
qpq.qualifier_attr_value_to setup_value_to,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
'HQ' QUALIFIER_TYPE,
qplatpc.attribute_level pricing_attribute_level,
qplatpc.attribute_type pricing_attribute_type,
qplatpc.context pricing_attribute_context,
qplatpc.attribute pricing_attribute,
qplatpc.value_from pricing_attr_value,
qpprod.pricing_attr_value_from pricing_setup_value_from,
qpprod.pricing_attr_value_to pricing_setup_value_to,
qpprod.comparison_operator_code pricing_comparison_operator,
qpprod.pricing_attribute_datatype pricing_datatype
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq ,
qp_list_headers_b qph,
qp_price_req_sources_v qprs,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod ,
qp_npreq_line_attrs_tmp qplatpc,
qp_list_lines qpl
WHERE qph.list_header_id = qpq.list_header_id
-- 3594459, context and attribute OR'd together
AND (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND qpq.list_line_id = -1
AND qpl.list_line_id = qpprod.list_line_id
AND qph.currency_code = qplines.currency_code
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, qplines.pricing_effective_date) and
nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpq.qualifier_context = qplatq.context
AND qpq.qualifier_attribute = qplatq.attribute
AND qpq.comparison_operator_code = '=' --[julin/5007789]
AND qplatq.value_from = qpq.qualifier_attr_value --bug#1761272 Multiple NOT =, [julin/5007789]
AND qpq.active_flag = G_YES
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qpprod.pricing_attribute_context = qplatpc.context
AND qpprod.pricing_attribute = qplatpc.attribute
AND (qpprod.pricing_attr_value_from = qplatpc.value_from
or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
AND qplatq.line_index = qplatpc.line_index
AND qplatq.line_index = qplines.line_index
AND qplatpc.line_index = qplatpr.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatpr.line_index = qplines.line_index --[julin/4708044]
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND qplatpc.attribute_type = 'PRICING'
AND qplatpc.pricing_status_code = G_STATUS_UNCHANGED
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
--AND qplatq.pricing_attr_flag = G_YES --[julin/4708044] wrong table, currently not reliable value, not used in index
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPLATPC QPL)
index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2)
index(qplatq QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5)
INDEX(QPQ QP_QUALIFIERS_N5)
l_prod_qual_pric_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qplatq.context qualifier_attribute_context,
qplatq.attribute qualifier_attribute,
qplatq.value_from qualifier_attribute_value,
qpq.qualifier_grouping_no qualifier_grouping_no,
qpq.qualifier_precedence qualifier_precedence,
qpq.qualifier_datatype,
qpq.qualifier_attr_value setup_value_from,
qpq.qualifier_attr_value_to setup_value_to,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
'HQ' QUALIFIER_TYPE,
qplatpc.attribute_level pricing_attribute_level,
qplatpc.attribute_type pricing_attribute_type,
qplatpc.context pricing_attribute_context,
qplatpc.attribute pricing_attribute,
qplatpc.value_from pricing_attr_value,
qpprod.pricing_attr_value_from pricing_setup_value_from,
qpprod.pricing_attr_value_to pricing_setup_value_to,
qpprod.comparison_operator_code pricing_comparison_operator,
qpprod.pricing_attribute_datatype pricing_datatype
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq ,
qp_list_headers_b qph,
qp_price_req_sources_v qprs,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod ,
qp_npreq_line_attrs_tmp qplatpc,
qp_list_lines qpl
WHERE qph.list_header_id = qpq.list_header_id
-- 3594459, context and attribute OR'd together
AND (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND qpq.list_line_id = -1
AND qpl.list_line_id = qpprod.list_line_id
AND qph.currency_code = qplines.currency_code
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, qplines.pricing_effective_date) and
nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpq.qualifier_context = qplatq.context
AND qpq.qualifier_attribute = qplatq.attribute
AND qpq.comparison_operator_code = 'NOT =' --[julin/5007789]
AND qpq.active_flag = G_YES
AND qplatq.value_from <> qpq.qualifier_attr_value --[julin/5007789]
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qpprod.pricing_attribute_context = qplatpc.context
AND qpprod.pricing_attribute = qplatpc.attribute
AND (qpprod.pricing_attr_value_from = qplatpc.value_from
or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
AND qplatq.line_index = qplatpc.line_index
AND qplatq.line_index = qplines.line_index
AND qplatpc.line_index = qplatpr.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatpr.line_index = qplines.line_index --[julin/4708044]
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND qplatpc.attribute_type = 'PRICING'
AND qplatpc.pricing_status_code = G_STATUS_UNCHANGED
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
--AND qplatq.pricing_attr_flag = G_YES --[julin/4708044] wrong table, currently not reliable value, not used in index
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPLATPC QPL)
index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2)
index(qplatq QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5)
INDEX(QPQ QP_QUALIFIERS_N6)
l_prod_qual_pric_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qplatq.context qualifier_attribute_context,
qplatq.attribute qualifier_attribute,
qplatq.value_from qualifier_attribute_value,
qpq.qualifier_grouping_no qualifier_grouping_no,
qpq.qualifier_precedence qualifier_precedence,
qpq.qualifier_datatype,
qpq.qualifier_attr_value setup_value_from,
qpq.qualifier_attr_value_to setup_value_to,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
'HQ' QUALIFIER_TYPE,
qplatpc.attribute_level pricing_attribute_level,
qplatpc.attribute_type pricing_attribute_type,
qplatpc.context pricing_attribute_context,
qplatpc.attribute pricing_attribute,
qplatpc.value_from pricing_attr_value,
qpprod.pricing_attr_value_from pricing_setup_value_from,
qpprod.pricing_attr_value_to pricing_setup_value_to,
qpprod.comparison_operator_code pricing_comparison_operator,
qpprod.pricing_attribute_datatype pricing_datatype
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq ,
qp_list_headers_b qph,
qp_price_req_sources_v qprs,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod ,
qp_npreq_line_attrs_tmp qplatpc,
qp_list_lines qpl
WHERE qph.list_header_id = qpq.list_header_id
-- 3594459, context and attribute OR'd together
AND (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND qpq.list_line_id = -1
AND qpl.list_line_id = qpprod.list_line_id
AND qph.currency_code = qplines.currency_code
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, qplines.pricing_effective_date) and
nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpq.qualifier_context = qplatq.context
AND qpq.qualifier_attribute = qplatq.attribute
AND qpq.comparison_operator_code = G_OPERATOR_BETWEEN --[julin/5007789]
AND qpq.active_flag = G_YES
and ((qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y) --[julin/5007789]
and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to)
or
(qpq.qualifier_datatype = G_NUMERIC
and qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number))
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qpprod.pricing_attribute_context = qplatpc.context
AND qpprod.pricing_attribute = qplatpc.attribute
AND (qpprod.pricing_attr_value_from = qplatpc.value_from
or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
AND qplatq.line_index = qplatpc.line_index
AND qplatq.line_index = qplines.line_index
AND qplatpc.line_index = qplatpr.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatpr.line_index = qplines.line_index --[julin/4708044]
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND qplatpc.attribute_type = 'PRICING'
AND qplatpc.pricing_status_code = G_STATUS_UNCHANGED
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
--AND qplatq.pricing_attr_flag = G_YES --[julin/4708044] wrong table, currently not reliable value, not used in index
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
ORDER BY 4,2;
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPLATPC QPL)
index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2)
index(qplatq QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5)
INDEX(QPQ QP_QUALIFIERS_N4)
l_prod_qual_pric_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qplatq.context qualifier_attribute_context,
qplatq.attribute qualifier_attribute,
qplatq.value_from qualifier_attribute_value,
qpq.qualifier_grouping_no qualifier_grouping_no,
qpq.qualifier_precedence qualifier_precedence,
qpq.qualifier_datatype,
qpq.qualifier_attr_value setup_value_from,
qpq.qualifier_attr_value_to setup_value_to,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
'HQ' QUALIFIER_TYPE,
qplatpc.attribute_level pricing_attribute_level,
qplatpc.attribute_type pricing_attribute_type,
qplatpc.context pricing_attribute_context,
qplatpc.attribute pricing_attribute,
qplatpc.value_from pricing_attr_value,
qpprod.pricing_attr_value_from pricing_setup_value_from,
qpprod.pricing_attr_value_to pricing_setup_value_to,
qpprod.comparison_operator_code pricing_comparison_operator,
qpprod.pricing_attribute_datatype pricing_datatype,
qcdt.currency_detail_id,
qcdt.currency_header_id,
qcdt.selling_rounding_factor,
qplines.currency_code order_currency,
qplines.pricing_effective_date pricing_effective_date,
qph.currency_code base_currency_code
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq ,
qp_list_headers_b qph,
qp_price_req_sources_v qprs,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod ,
qp_npreq_line_attrs_tmp qplatpc,
qp_list_lines qpl,
qp_currency_details qcdt
WHERE qph.list_header_id = qpq.list_header_id
-- 3594459, context and attribute OR'd together
AND (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qph.list_header_id = qpl.list_header_id
AND qpq.list_line_id = -1
AND qpl.list_line_id = qpprod.list_line_id
--AND qph.currency_code = qplines.currency_code
AND qph.currency_header_id = qcdt.currency_header_id
AND qplines.currency_code = qcdt.to_currency_code
AND qplines.pricing_effective_date between
nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
(qcdt.curr_attribute_context is null
and not exists
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1
where qcdt1.curr_attribute_context IS NOT NULL
and qcdt1.curr_attribute_context = pa_tmp.context
and qcdt1.curr_attribute = pa_tmp.attribute
and qcdt1.curr_attribute_value = pa_tmp.value_from
and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
and qcdt1.to_currency_code = qcdt.to_currency_code
and qcdt1.currency_header_id = qcdt.currency_header_id
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
OR
(qcdt.curr_attribute_context is not null
and qcdt.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
where qcdt2.curr_attribute_context IS NOT NULL
and qcdt2.curr_attribute_context = pa_tmp1.context
and qcdt2.curr_attribute = pa_tmp1.attribute
and qcdt2.curr_attribute_value = pa_tmp1.value_from
and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
and qcdt2.to_currency_code = qcdt.to_currency_code
and qcdt2.currency_header_id = qcdt.currency_header_id
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp1.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, qplines.pricing_effective_date) and
nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpq.qualifier_context = qplatq.context
AND qpq.qualifier_attribute = qplatq.attribute
AND qpq.comparison_operator_code = '=' --[julin/5007789]
AND qplatq.value_from = qpq.qualifier_attr_value --bug#1761272 Multiple NOT =, [julin/5007789]
AND qpq.active_flag = G_YES
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qpprod.pricing_attribute_context = qplatpc.context
AND qpprod.pricing_attribute = qplatpc.attribute
AND (qpprod.pricing_attr_value_from = qplatpc.value_from
or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
AND qplatq.line_index = qplatpc.line_index
AND qplatq.line_index = qplines.line_index
AND qplatpc.line_index = qplatpr.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatpr.line_index = qplines.line_index --[julin/4708044]
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND qplatpc.attribute_type = 'PRICING'
AND qplatpc.pricing_status_code = G_STATUS_UNCHANGED
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
--AND qplatq.pricing_attr_flag = G_YES --[julin/4708044] wrong table, currently not reliable value, not used in index
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPLATPC QPL)
index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2)
index(qplatq QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5)
INDEX(QPQ QP_QUALIFIERS_N5)
l_prod_qual_pric_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qplatq.context qualifier_attribute_context,
qplatq.attribute qualifier_attribute,
qplatq.value_from qualifier_attribute_value,
qpq.qualifier_grouping_no qualifier_grouping_no,
qpq.qualifier_precedence qualifier_precedence,
qpq.qualifier_datatype,
qpq.qualifier_attr_value setup_value_from,
qpq.qualifier_attr_value_to setup_value_to,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
'HQ' QUALIFIER_TYPE,
qplatpc.attribute_level pricing_attribute_level,
qplatpc.attribute_type pricing_attribute_type,
qplatpc.context pricing_attribute_context,
qplatpc.attribute pricing_attribute,
qplatpc.value_from pricing_attr_value,
qpprod.pricing_attr_value_from pricing_setup_value_from,
qpprod.pricing_attr_value_to pricing_setup_value_to,
qpprod.comparison_operator_code pricing_comparison_operator,
qpprod.pricing_attribute_datatype pricing_datatype,
qcdt.currency_detail_id,
qcdt.currency_header_id,
qcdt.selling_rounding_factor,
qplines.currency_code order_currency,
qplines.pricing_effective_date pricing_effective_date,
qph.currency_code base_currency_code
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq ,
qp_list_headers_b qph,
qp_price_req_sources_v qprs,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod ,
qp_npreq_line_attrs_tmp qplatpc,
qp_list_lines qpl,
qp_currency_details qcdt
WHERE qph.list_header_id = qpq.list_header_id
-- 3594459, context and attribute OR'd together
AND (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qph.list_header_id = qpl.list_header_id
AND qpq.list_line_id = -1
AND qpl.list_line_id = qpprod.list_line_id
--AND qph.currency_code = qplines.currency_code
AND qph.currency_header_id = qcdt.currency_header_id
AND qplines.currency_code = qcdt.to_currency_code
AND qplines.pricing_effective_date between
nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
(qcdt.curr_attribute_context is null
and not exists
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1
where qcdt1.curr_attribute_context IS NOT NULL
and qcdt1.curr_attribute_context = pa_tmp.context
and qcdt1.curr_attribute = pa_tmp.attribute
and qcdt1.curr_attribute_value = pa_tmp.value_from
and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
and qcdt1.to_currency_code = qcdt.to_currency_code
and qcdt1.currency_header_id = qcdt.currency_header_id
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
OR
(qcdt.curr_attribute_context is not null
and qcdt.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
where qcdt2.curr_attribute_context IS NOT NULL
and qcdt2.curr_attribute_context = pa_tmp1.context
and qcdt2.curr_attribute = pa_tmp1.attribute
and qcdt2.curr_attribute_value = pa_tmp1.value_from
and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
and qcdt2.to_currency_code = qcdt.to_currency_code
and qcdt2.currency_header_id = qcdt.currency_header_id
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp1.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, qplines.pricing_effective_date) and
nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpq.qualifier_context = qplatq.context
AND qpq.qualifier_attribute = qplatq.attribute
AND qpq.comparison_operator_code = 'NOT =' --[julin/5007789]
AND qpq.active_flag = G_YES
AND qplatq.value_from <> qpq.qualifier_attr_value --[julin/5007789]
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qpprod.pricing_attribute_context = qplatpc.context
AND qpprod.pricing_attribute = qplatpc.attribute
AND (qpprod.pricing_attr_value_from = qplatpc.value_from
or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
AND qplatq.line_index = qplatpc.line_index
AND qplatq.line_index = qplines.line_index
AND qplatpc.line_index = qplatpr.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatpr.line_index = qplines.line_index --[julin/4708044]
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND qplatpc.attribute_type = 'PRICING'
AND qplatpc.pricing_status_code = G_STATUS_UNCHANGED
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
--AND qplatq.pricing_attr_flag = G_YES --[julin/4708044] wrong table, currently not reliable value, not used in index
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPLATPC QPL)
index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2)
index(qplatq QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5)
INDEX(QPQ QP_QUALIFIERS_N6)
l_prod_qual_pric_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qplatq.context qualifier_attribute_context,
qplatq.attribute qualifier_attribute,
qplatq.value_from qualifier_attribute_value,
qpq.qualifier_grouping_no qualifier_grouping_no,
qpq.qualifier_precedence qualifier_precedence,
qpq.qualifier_datatype,
qpq.qualifier_attr_value setup_value_from,
qpq.qualifier_attr_value_to setup_value_to,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
'HQ' QUALIFIER_TYPE,
qplatpc.attribute_level pricing_attribute_level,
qplatpc.attribute_type pricing_attribute_type,
qplatpc.context pricing_attribute_context,
qplatpc.attribute pricing_attribute,
qplatpc.value_from pricing_attr_value,
qpprod.pricing_attr_value_from pricing_setup_value_from,
qpprod.pricing_attr_value_to pricing_setup_value_to,
qpprod.comparison_operator_code pricing_comparison_operator,
qpprod.pricing_attribute_datatype pricing_datatype,
qcdt.currency_detail_id,
qcdt.currency_header_id,
qcdt.selling_rounding_factor,
qplines.currency_code order_currency,
qplines.pricing_effective_date pricing_effective_date,
qph.currency_code base_currency_code
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatq,
qp_qualifiers qpq ,
qp_list_headers_b qph,
qp_price_req_sources_v qprs,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod ,
qp_npreq_line_attrs_tmp qplatpc,
qp_list_lines qpl,
qp_currency_details qcdt
WHERE qph.list_header_id = qpq.list_header_id
-- 3594459, context and attribute OR'd together
AND (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qph.list_header_id = qpl.list_header_id
AND qpq.list_line_id = -1
AND qpl.list_line_id = qpprod.list_line_id
--AND qph.currency_code = qplines.currency_code
AND qph.currency_header_id = qcdt.currency_header_id
AND qplines.currency_code = qcdt.to_currency_code
AND qplines.pricing_effective_date between
nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
(qcdt.curr_attribute_context is null
and not exists
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1
where qcdt1.curr_attribute_context IS NOT NULL
and qcdt1.curr_attribute_context = pa_tmp.context
and qcdt1.curr_attribute = pa_tmp.attribute
and qcdt1.curr_attribute_value = pa_tmp.value_from
and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
and qcdt1.to_currency_code = qcdt.to_currency_code
and qcdt1.currency_header_id = qcdt.currency_header_id
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
OR
(qcdt.curr_attribute_context is not null
and qcdt.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
where qcdt2.curr_attribute_context IS NOT NULL
and qcdt2.curr_attribute_context = pa_tmp1.context
and qcdt2.curr_attribute = pa_tmp1.attribute
and qcdt2.curr_attribute_value = pa_tmp1.value_from
and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
and qcdt2.to_currency_code = qcdt.to_currency_code
and qcdt2.currency_header_id = qcdt.currency_header_id
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp1.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, qplines.pricing_effective_date) and
nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpq.qualifier_context = qplatq.context
AND qpq.qualifier_attribute = qplatq.attribute
AND qpq.comparison_operator_code = G_OPERATOR_BETWEEN --[julin/5007789]
AND qpq.active_flag = G_YES
and ((qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y) --[julin/5007789]
and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to)
or
(qpq.qualifier_datatype = G_NUMERIC
and qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number))
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qpprod.pricing_attribute_context = qplatpc.context
AND qpprod.pricing_attribute = qplatpc.attribute
AND (qpprod.pricing_attr_value_from = qplatpc.value_from
or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
AND qplatq.line_index = qplatpc.line_index
AND qplatq.line_index = qplines.line_index
AND qplatpc.line_index = qplatpr.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatpr.line_index = qplines.line_index --[julin/4708044]
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND qplatpc.attribute_type = 'PRICING'
AND qplatpc.pricing_status_code = G_STATUS_UNCHANGED
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
--AND qplatq.pricing_attr_flag = G_YES --[julin/4708044] wrong table, currently not reliable value, not used in index
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
ORDER BY 4,2;
SELECT /*+ ORDERED USE_NL(QPLATPR QPPROD QPL QPH QPRS) index(qplatpr QP_PREQ_LINE_ATTRS_TMP_N1) l_prod_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5000789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND,G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod ,
qp_list_lines qpl ,
qp_list_headers_b qph ,
qp_price_req_sources_v qprs
WHERE
qph.list_header_id = qpprod.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND qpl.qualification_ind = QP_PREQ_GRP.G_YES_PROD_IND
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qph.currency_code = qplines.currency_code
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND qpl.list_line_id = qpprod.list_line_id
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND qpl.pricing_phase_id = p_pricing_phase_id
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatpr.line_index = qplines.line_index
AND qplatpr.attribute_type='PRODUCT' --[julin/5007789]
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED --[julin/5007789]
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 4,2; --order by list_line_id
SELECT /*+ ORDERED USE_NL(QPLATPR QPPROD QPL QPH QPRS) index(qplatpr QP_PREQ_LINE_ATTRS_TMP_N1) l_prod_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
qcdt.currency_detail_id,
qcdt.currency_header_id,
qcdt.selling_rounding_factor,
qplines.currency_code order_currency,
qplines.pricing_effective_date pricing_effective_date,
qph.currency_code base_currency_code
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND,G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod,
qp_list_lines qpl,
qp_list_headers_b qph,
qp_price_req_sources_v qprs,
qp_currency_details qcdt
WHERE qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpl.list_line_id = qpprod.list_line_id
--AND qph.currency_code = qplines.currency_code
AND qph.currency_header_id = qcdt.currency_header_id
AND qplines.currency_code = qcdt.to_currency_code
AND qplines.pricing_effective_date between
nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
(qcdt.curr_attribute_context is null
and not exists
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1
where qcdt1.curr_attribute_context IS NOT NULL
and qcdt1.curr_attribute_context = pa_tmp.context
and qcdt1.curr_attribute = pa_tmp.attribute
and qcdt1.curr_attribute_value = pa_tmp.value_from
and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
and qcdt1.to_currency_code = qcdt.to_currency_code
and qcdt1.currency_header_id = qcdt.currency_header_id
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
OR
(qcdt.curr_attribute_context is not null
and qcdt.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
where qcdt2.curr_attribute_context IS NOT NULL
and qcdt2.curr_attribute_context = pa_tmp1.context
and qcdt2.curr_attribute = pa_tmp1.attribute
and qcdt2.curr_attribute_value = pa_tmp1.value_from
and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
and qcdt2.to_currency_code = qcdt.to_currency_code
and qcdt2.currency_header_id = qcdt.currency_header_id
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp1.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND QPLATPR.LINE_INDEX = QPLINES.LINE_INDEX -- 4331801/4365538
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 4,2;
SELECT /*+ ORDERED USE_NL(QPLATPR QPPROD QPLATPC QPL QPH QPRS) index(qplatpr QP_PREQ_LINE_ATTRS_TMP_N1) INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5) index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2) l_prod_pric_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
qplatpc.attribute_level pricing_attribute_level,
qplatpc.attribute_type pricing_attribute_type,
qplatpc.context pricing_attribute_context,
qplatpc.attribute pricing_attribute,
qplatpc.value_from pricing_attr_value,
qpprod.pricing_attr_value_from pricing_setup_value_from,
qpprod.pricing_attr_value_to pricing_setup_value_to,
qpprod.comparison_operator_code pricing_comparison_operator,
qpprod.pricing_attribute_datatype pricing_datatype
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND,G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod,
qp_npreq_line_attrs_tmp qplatpc,
qp_list_lines qpl,
qp_list_headers_b qph,
qp_price_req_sources_v QPRS
WHERE
qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND qpl.list_line_id = qpprod.list_line_id
AND qpl.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_IND
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
AND qph.currency_code = qplines.currency_code --5922273
AND qph.active_flag = G_YES
AND qpl.pricing_phase_id = p_pricing_phase_id
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.pricing_attribute_context = qplatpc.context
AND qpprod.pricing_attribute = qplatpc.attribute
AND (qpprod.pricing_attr_value_from = qplatpc.value_from
or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
--or qpl.price_break_type_code = G_RECURRING_BREAK)
AND qplatpc.attribute_type = 'PRICING' --[julin/5007789]
AND qplatpc.pricing_status_code = G_STATUS_UNCHANGED --[julin/5007789]
AND qplatpc.line_index = qplines.line_index
AND qplatpr.line_index = qplines.line_index
AND qplatpr.attribute_type = 'PRODUCT' --[julin/5007789]
AND qplatpr.pricing_status_code = G_STATUS_UNCHANGED --[julin/5007789]
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
--AND qplatpc.pricing_attr_flag = G_YES --[julin/4708044] currently not reliable value, not used in index
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 4,2;
SELECT /*+ ORDERED USE_NL(QPLATPR QPPROD QPLATPC QPL QPH QPRS) index(qplatpr QP_PREQ_LINE_ATTRS_TMP_N1) INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5) index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2) l_prod_pric_cur_pl */
qpl.list_header_id,
qpl.list_line_id,
qpl.list_line_type_code,
qplatpr.line_index,
qplatpr.applied_flag,
qplatpr.attribute_level product_attribute_level,
qplatpr.attribute_type product_attribute_type,
qplatpr.context product_attribute_context,
qplatpr.attribute product_attribute,
qplatpr.value_from product_attr_value,
qpprod.product_uom_code product_uom_code,
qpprod.excluder_flag,
qpl.automatic_flag,
qpl.modifier_level_code,
qpl.primary_uom_flag,
qpl.arithmetic_operator operand_calculation_code,
qpl.operand operand_value,
qpl.pricing_group_sequence,
qph.list_type_code created_from_list_type,
qph.rounding_factor,
qpl.pricing_phase_id,
qpl.price_break_type_code,
qpl.incompatibility_grp_code,
qpl.price_by_formula_id,
qpl.product_precedence,
qpl.list_line_no,
qplatpc.attribute_level pricing_attribute_level,
qplatpc.attribute_type pricing_attribute_type,
qplatpc.context pricing_attribute_context,
qplatpc.attribute pricing_attribute,
qplatpc.value_from pricing_attr_value,
qpprod.pricing_attr_value_from pricing_setup_value_from,
qpprod.pricing_attr_value_to pricing_setup_value_to,
qpprod.comparison_operator_code pricing_comparison_operator,
qpprod.pricing_attribute_datatype pricing_datatype,
qcdt.currency_detail_id,
qcdt.currency_header_id,
qcdt.selling_rounding_factor,
qplines.currency_code order_currency,
qplines.pricing_effective_date pricing_effective_date,
qph.currency_code base_currency_code
,QPL.BREAK_UOM_CODE /* Proration */
,QPL.BREAK_UOM_CONTEXT /* Proration */
,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
(SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND,G_NO_LIST_PASSED)
AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
qp_npreq_line_attrs_tmp qplatpr,
qp_pricing_attributes qpprod ,
qp_npreq_line_attrs_tmp qplatpc,
qp_list_lines qpl ,
qp_list_headers_b qph,
qp_price_req_sources_v qprs,
qp_currency_details qcdt
WHERE
qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
-- (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
-- nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND qpl.list_line_id = qpprod.list_line_id
AND (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qplines.list_price_override_flag in ('N', 'O') -- po integration
--AND qph.currency_code = qplines.currency_code
AND qph.currency_header_id = qcdt.currency_header_id
AND qplines.currency_code = qcdt.to_currency_code
AND qplines.pricing_effective_date between
nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date) and
nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
(qcdt.curr_attribute_context is null
and not exists
(select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp, qp_currency_details qcdt1
where qcdt1.curr_attribute_context IS NOT NULL
and qcdt1.curr_attribute_context = pa_tmp.context
and qcdt1.curr_attribute = pa_tmp.attribute
and qcdt1.curr_attribute_value = pa_tmp.value_from
and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
and qcdt1.to_currency_code = qcdt.to_currency_code
and qcdt1.currency_header_id = qcdt.currency_header_id
and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
OR
(qcdt.curr_attribute_context is not null
and qcdt.precedence =
(select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
where qcdt2.curr_attribute_context IS NOT NULL
and qcdt2.curr_attribute_context = pa_tmp1.context
and qcdt2.curr_attribute = pa_tmp1.attribute
and qcdt2.curr_attribute_value = pa_tmp1.value_from
and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
and qcdt2.to_currency_code = qcdt.to_currency_code
and qcdt2.currency_header_id = qcdt.currency_header_id
and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
and pa_tmp1.line_index = qplines.line_index
and qplines.pricing_effective_date between
nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND qplines.pricing_effective_date between
nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
and nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.pricing_attribute_context = qplatpc.context
AND qpprod.pricing_attribute = qplatpc.attribute
AND (qpprod.pricing_attr_value_from = qplatpc.value_from
or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
AND qplatpc.line_index = qplatpr.line_index
AND qplatpr.line_index = qplines.line_index -- 4331801/4365538
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code = qprs.request_type_code
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND qplatpc.attribute_type = 'PRICING'
AND qplatpc.pricing_status_code = G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 4,2;
l_routine VARCHAR2(240):='Routine:QP_PREQ_GRP.Select_Price_List_Lines';
engine_debug('Before Big Select');
deleted here. There is no need to explicitly delete since BULK COLLECT
will truncate the data before populating. */
-- fetch into _P and _Q tables here
FETCH l_prod_qual_cur_currency BULK COLLECT INTO
G_LIST_HEADER_ID_TBL_P,
G_LIST_LINE_ID_TBL_P,
G_LIST_LINE_TYPE_TBL_P,
G_LINE_INDEX_TBL_P,
G_APPLIED_FLAG_TBL_P,
G_ATTRIBUTE_LEVEL_TBL_P,
G_ATTRIBUTE_TYPE_TBL_P,
G_CONTEXT_TBL_P,
G_ATTRIBUTE_TBL_P,
G_VALUE_FROM_TBL_P,
G_PRODUCT_UOM_CODE_TBL_P,
G_EXCLUDER_FLAG_TBL_P,
G_CONTEXT_TBL_Q,
G_ATTRIBUTE_TBL_Q,
G_VALUE_FROM_TBL_Q,
G_GROUPING_NO_TBL_Q,
G_QUALIFIER_PRECEDENCE_TBL_Q,
G_DATATYPE_TBL_Q,
G_SETUP_VALUE_FROM_TBL_Q,
G_SETUP_VALUE_TO_TBL_Q,
G_AUTOMATIC_FLAG_TBL_P,
G_MODIFIER_LEVEL_CODE_TBL_P,
G_PRIMARY_UOM_FLAG_TBL_P,
G_OPER_CALCULATION_CODE_TBL_P,
G_OPERAND_VALUE_TBL_P,
G_PRICING_GROUP_SEQUENCE_TBL_P,
G_LIST_TYPE_CODE_TBL_P,
G_ROUNDING_FACTOR_TBL_P,
G_PRICING_PHASE_ID_TBL_P,
G_PRICE_BREAK_TYPE_CODE_TBL_P,
G_INCOMP_GRP_CODE_TBL_P,
G_PRICE_FORMULA_ID_TBL_P,
G_PRODUCT_PRECEDENCE_TBL_P,
G_LIST_LINE_NO_TBL_P,
G_QUALIFIER_TYPE_TBL_Q ,
G_CURRENCY_DETAIL_ID_TBL_P,
G_CURRENCY_HEADER_ID_TBL_P,
G_SELLING_ROUNDING_TBL_P,
G_ORDER_CURRENCY_TBL_P,
G_PRICING_EFFECTIVE_DATE_TBL_P,
G_BASE_CURRENCY_CODE_TBL_P
,G_BREAK_UOM_TBL_P /* Proration */
,G_BREAK_CONTEXT_TBL_P /* Proration */
,G_BREAK_ATTRIBUTE_TBL_P /* Proration */
LIMIT nROWS;
engine_debug('shu dbg, after bulk insert');
deleted here. There is no need to explicitly delete since BULK COLLECT
will truncate the data before populating. */
-- fetch into _P , _Q tables and _PR tables here
FETCH l_prod_qual_pric_cur_currency BULK COLLECT INTO
G_LIST_HEADER_ID_TBL_P,
G_LIST_LINE_ID_TBL_P,
G_LIST_LINE_TYPE_TBL_P,
G_LINE_INDEX_TBL_P,
G_APPLIED_FLAG_TBL_P,
G_ATTRIBUTE_LEVEL_TBL_P,
G_ATTRIBUTE_TYPE_TBL_P,
G_CONTEXT_TBL_P,
G_ATTRIBUTE_TBL_P,
G_VALUE_FROM_TBL_P,
G_PRODUCT_UOM_CODE_TBL_P,
G_EXCLUDER_FLAG_TBL_P,
G_CONTEXT_TBL_Q,
G_ATTRIBUTE_TBL_Q,
G_VALUE_FROM_TBL_Q,
G_GROUPING_NO_TBL_Q,
G_QUALIFIER_PRECEDENCE_TBL_Q,
G_DATATYPE_TBL_Q,
G_SETUP_VALUE_FROM_TBL_Q,
G_SETUP_VALUE_TO_TBL_Q,
G_AUTOMATIC_FLAG_TBL_P,
G_MODIFIER_LEVEL_CODE_TBL_P,
G_PRIMARY_UOM_FLAG_TBL_P,
G_OPER_CALCULATION_CODE_TBL_P,
G_OPERAND_VALUE_TBL_P,
G_PRICING_GROUP_SEQUENCE_TBL_P,
G_LIST_TYPE_CODE_TBL_P,
G_ROUNDING_FACTOR_TBL_P,
G_PRICING_PHASE_ID_TBL_P,
G_PRICE_BREAK_TYPE_CODE_TBL_P,
G_INCOMP_GRP_CODE_TBL_P,
G_PRICE_FORMULA_ID_TBL_P,
G_PRODUCT_PRECEDENCE_TBL_P,
G_LIST_LINE_NO_TBL_P,
G_QUALIFIER_TYPE_TBL_Q ,
G_ATTRIBUTE_LEVEL_TBL_PR,
G_ATTRIBUTE_TYPE_TBL_PR,
G_CONTEXT_TBL_PR,
G_ATTRIBUTE_TBL_PR,
G_VALUE_FROM_TBL_PR,
G_SETUP_VALUE_FROM_TBL_PR,
G_SETUP_VALUE_TO_TBL_PR,
G_OPERATOR_TYPE_TBL_PR,
G_DATATYPE_TBL_PR,
G_CURRENCY_DETAIL_ID_TBL_P,
G_CURRENCY_HEADER_ID_TBL_P,
G_SELLING_ROUNDING_TBL_P,
G_ORDER_CURRENCY_TBL_P,
G_PRICING_EFFECTIVE_DATE_TBL_P ,
G_BASE_CURRENCY_CODE_TBL_P
,G_BREAK_UOM_TBL_P /* Proration */
,G_BREAK_CONTEXT_TBL_P /* Proration */
,G_BREAK_ATTRIBUTE_TBL_P /* Proration */
LIMIT nROWS;
deleted here. There is no need to explicitly delete since BULK COLLECT
will truncate the data before populating. */
-- fetch into _P tables here
FETCH l_prod_cur_currency BULK COLLECT INTO
G_LIST_HEADER_ID_TBL_P,
G_LIST_LINE_ID_TBL_P,
G_LIST_LINE_TYPE_TBL_P,
G_LINE_INDEX_TBL_P,
G_APPLIED_FLAG_TBL_P,
G_ATTRIBUTE_LEVEL_TBL_P,
G_ATTRIBUTE_TYPE_TBL_P,
G_CONTEXT_TBL_P,
G_ATTRIBUTE_TBL_P,
G_VALUE_FROM_TBL_P,
G_PRODUCT_UOM_CODE_TBL_P,
G_EXCLUDER_FLAG_TBL_P,
G_AUTOMATIC_FLAG_TBL_P,
G_MODIFIER_LEVEL_CODE_TBL_P,
G_PRIMARY_UOM_FLAG_TBL_P,
G_OPER_CALCULATION_CODE_TBL_P,
G_OPERAND_VALUE_TBL_P,
G_PRICING_GROUP_SEQUENCE_TBL_P,
G_LIST_TYPE_CODE_TBL_P,
G_ROUNDING_FACTOR_TBL_P,
G_PRICING_PHASE_ID_TBL_P,
G_PRICE_BREAK_TYPE_CODE_TBL_P,
G_INCOMP_GRP_CODE_TBL_P,
G_PRICE_FORMULA_ID_TBL_P,
G_PRODUCT_PRECEDENCE_TBL_P,
G_LIST_LINE_NO_TBL_P,
G_CURRENCY_DETAIL_ID_TBL_P,
G_CURRENCY_HEADER_ID_TBL_P,
G_SELLING_ROUNDING_TBL_P,
G_ORDER_CURRENCY_TBL_P,
G_PRICING_EFFECTIVE_DATE_TBL_P,
G_BASE_CURRENCY_CODE_TBL_P
,G_BREAK_UOM_TBL_P /* Proration */
,G_BREAK_CONTEXT_TBL_P /* Proration */
,G_BREAK_ATTRIBUTE_TBL_P /* Proration */
LIMIT nROWS;
deleted here. There is no need to explicitly delete since BULK COLLECT
will truncate the data before populating. */
-- fetch into _P , and _PR tables here
FETCH l_prod_pric_cur_currency BULK COLLECT INTO
G_LIST_HEADER_ID_TBL_P,
G_LIST_LINE_ID_TBL_P,
G_LIST_LINE_TYPE_TBL_P,
G_LINE_INDEX_TBL_P,
G_APPLIED_FLAG_TBL_P,
G_ATTRIBUTE_LEVEL_TBL_P,
G_ATTRIBUTE_TYPE_TBL_P,
G_CONTEXT_TBL_P,
G_ATTRIBUTE_TBL_P,
G_VALUE_FROM_TBL_P,
G_PRODUCT_UOM_CODE_TBL_P,
G_EXCLUDER_FLAG_TBL_P,
G_AUTOMATIC_FLAG_TBL_P,
G_MODIFIER_LEVEL_CODE_TBL_P,
G_PRIMARY_UOM_FLAG_TBL_P,
G_OPER_CALCULATION_CODE_TBL_P,
G_OPERAND_VALUE_TBL_P,
G_PRICING_GROUP_SEQUENCE_TBL_P,
G_LIST_TYPE_CODE_TBL_P,
G_ROUNDING_FACTOR_TBL_P,
G_PRICING_PHASE_ID_TBL_P,
G_PRICE_BREAK_TYPE_CODE_TBL_P,
G_INCOMP_GRP_CODE_TBL_P,
G_PRICE_FORMULA_ID_TBL_P,
G_PRODUCT_PRECEDENCE_TBL_P,
G_LIST_LINE_NO_TBL_P,
G_ATTRIBUTE_LEVEL_TBL_PR,
G_ATTRIBUTE_TYPE_TBL_PR,
G_CONTEXT_TBL_PR,
G_ATTRIBUTE_TBL_PR,
G_VALUE_FROM_TBL_PR,
G_SETUP_VALUE_FROM_TBL_PR,
G_SETUP_VALUE_TO_TBL_PR,
G_OPERATOR_TYPE_TBL_PR,
G_DATATYPE_TBL_PR,
G_CURRENCY_DETAIL_ID_TBL_P,
G_CURRENCY_HEADER_ID_TBL_P,
G_SELLING_ROUNDING_TBL_P,
G_ORDER_CURRENCY_TBL_P,
G_PRICING_EFFECTIVE_DATE_TBL_P ,
G_BASE_CURRENCY_CODE_TBL_P
,G_BREAK_UOM_TBL_P /* Proration */
,G_BREAK_CONTEXT_TBL_P /* Proration */
,G_BREAK_ATTRIBUTE_TBL_P /* Proration */
LIMIT nROWS;
deleted here. There is no need to explicitly delete since BULK COLLECT
will truncate the data before populating. */
-- fetch into _P and _Q tables here
FETCH l_prod_qual_cur BULK COLLECT INTO
G_LIST_HEADER_ID_TBL_P,
G_LIST_LINE_ID_TBL_P,
G_LIST_LINE_TYPE_TBL_P,
G_LINE_INDEX_TBL_P,
G_APPLIED_FLAG_TBL_P,
G_ATTRIBUTE_LEVEL_TBL_P,
G_ATTRIBUTE_TYPE_TBL_P,
G_CONTEXT_TBL_P,
G_ATTRIBUTE_TBL_P,
G_VALUE_FROM_TBL_P,
G_PRODUCT_UOM_CODE_TBL_P,
G_EXCLUDER_FLAG_TBL_P,
G_CONTEXT_TBL_Q,
G_ATTRIBUTE_TBL_Q,
G_VALUE_FROM_TBL_Q,
G_GROUPING_NO_TBL_Q,
G_QUALIFIER_PRECEDENCE_TBL_Q,
G_DATATYPE_TBL_Q,
G_SETUP_VALUE_FROM_TBL_Q,
G_SETUP_VALUE_TO_TBL_Q,
G_AUTOMATIC_FLAG_TBL_P,
G_MODIFIER_LEVEL_CODE_TBL_P,
G_PRIMARY_UOM_FLAG_TBL_P,
G_OPER_CALCULATION_CODE_TBL_P,
G_OPERAND_VALUE_TBL_P,
G_PRICING_GROUP_SEQUENCE_TBL_P,
G_LIST_TYPE_CODE_TBL_P,
G_ROUNDING_FACTOR_TBL_P,
G_PRICING_PHASE_ID_TBL_P,
G_PRICE_BREAK_TYPE_CODE_TBL_P,
G_INCOMP_GRP_CODE_TBL_P,
G_PRICE_FORMULA_ID_TBL_P,
G_PRODUCT_PRECEDENCE_TBL_P,
G_LIST_LINE_NO_TBL_P,
G_QUALIFIER_TYPE_TBL_Q
,G_BREAK_UOM_TBL_P /* Proration */
,G_BREAK_CONTEXT_TBL_P /* Proration */
,G_BREAK_ATTRIBUTE_TBL_P /* Proration */
LIMIT nROWS;
deleted here. There is no need to explicitly delete since BULK COLLECT
will truncate the data before populating. */
-- fetch into _P , _Q tables and _PR tables here
FETCH l_prod_qual_pric_cur BULK COLLECT INTO
G_LIST_HEADER_ID_TBL_P,
G_LIST_LINE_ID_TBL_P,
G_LIST_LINE_TYPE_TBL_P,
G_LINE_INDEX_TBL_P,
G_APPLIED_FLAG_TBL_P,
G_ATTRIBUTE_LEVEL_TBL_P,
G_ATTRIBUTE_TYPE_TBL_P,
G_CONTEXT_TBL_P,
G_ATTRIBUTE_TBL_P,
G_VALUE_FROM_TBL_P,
G_PRODUCT_UOM_CODE_TBL_P,
G_EXCLUDER_FLAG_TBL_P,
G_CONTEXT_TBL_Q,
G_ATTRIBUTE_TBL_Q,
G_VALUE_FROM_TBL_Q,
G_GROUPING_NO_TBL_Q,
G_QUALIFIER_PRECEDENCE_TBL_Q,
G_DATATYPE_TBL_Q,
G_SETUP_VALUE_FROM_TBL_Q,
G_SETUP_VALUE_TO_TBL_Q,
G_AUTOMATIC_FLAG_TBL_P,
G_MODIFIER_LEVEL_CODE_TBL_P,
G_PRIMARY_UOM_FLAG_TBL_P,
G_OPER_CALCULATION_CODE_TBL_P,
G_OPERAND_VALUE_TBL_P,
G_PRICING_GROUP_SEQUENCE_TBL_P,
G_LIST_TYPE_CODE_TBL_P,
G_ROUNDING_FACTOR_TBL_P,
G_PRICING_PHASE_ID_TBL_P,
G_PRICE_BREAK_TYPE_CODE_TBL_P,
G_INCOMP_GRP_CODE_TBL_P,
G_PRICE_FORMULA_ID_TBL_P,
G_PRODUCT_PRECEDENCE_TBL_P,
G_LIST_LINE_NO_TBL_P,
G_QUALIFIER_TYPE_TBL_Q ,
G_ATTRIBUTE_LEVEL_TBL_PR,
G_ATTRIBUTE_TYPE_TBL_PR,
G_CONTEXT_TBL_PR,
G_ATTRIBUTE_TBL_PR,
G_VALUE_FROM_TBL_PR,
G_SETUP_VALUE_FROM_TBL_PR,
G_SETUP_VALUE_TO_TBL_PR,
G_OPERATOR_TYPE_TBL_PR,
G_DATATYPE_TBL_PR
,G_BREAK_UOM_TBL_P /* Proration */
,G_BREAK_CONTEXT_TBL_P /* Proration */
,G_BREAK_ATTRIBUTE_TBL_P /* Proration */
LIMIT nROWS;
deleted here. There is no need to explicitly delete since BULK COLLECT
will truncate the data before populating. */
-- fetch into _P and _Q tables here
FETCH l_prod_cur BULK COLLECT INTO
G_LIST_HEADER_ID_TBL_P,
G_LIST_LINE_ID_TBL_P,
G_LIST_LINE_TYPE_TBL_P,
G_LINE_INDEX_TBL_P,
G_APPLIED_FLAG_TBL_P,
G_ATTRIBUTE_LEVEL_TBL_P,
G_ATTRIBUTE_TYPE_TBL_P,
G_CONTEXT_TBL_P,
G_ATTRIBUTE_TBL_P,
G_VALUE_FROM_TBL_P,
G_PRODUCT_UOM_CODE_TBL_P,
G_EXCLUDER_FLAG_TBL_P,
G_AUTOMATIC_FLAG_TBL_P,
G_MODIFIER_LEVEL_CODE_TBL_P,
G_PRIMARY_UOM_FLAG_TBL_P,
G_OPER_CALCULATION_CODE_TBL_P,
G_OPERAND_VALUE_TBL_P,
G_PRICING_GROUP_SEQUENCE_TBL_P,
G_LIST_TYPE_CODE_TBL_P,
G_ROUNDING_FACTOR_TBL_P,
G_PRICING_PHASE_ID_TBL_P,
G_PRICE_BREAK_TYPE_CODE_TBL_P,
G_INCOMP_GRP_CODE_TBL_P,
G_PRICE_FORMULA_ID_TBL_P,
G_PRODUCT_PRECEDENCE_TBL_P,
G_LIST_LINE_NO_TBL_P
,G_BREAK_UOM_TBL_P /* Proration */
,G_BREAK_CONTEXT_TBL_P /* Proration */
,G_BREAK_ATTRIBUTE_TBL_P /* Proration */
LIMIT nROWS;
deleted here. There is no need to explicitly delete since BULK COLLECT
will truncate the data before populating. */
-- fetch into _P , and _PR tables here
FETCH l_prod_pric_cur BULK COLLECT INTO
G_LIST_HEADER_ID_TBL_P,
G_LIST_LINE_ID_TBL_P,
G_LIST_LINE_TYPE_TBL_P,
G_LINE_INDEX_TBL_P,
G_APPLIED_FLAG_TBL_P,
G_ATTRIBUTE_LEVEL_TBL_P,
G_ATTRIBUTE_TYPE_TBL_P,
G_CONTEXT_TBL_P,
G_ATTRIBUTE_TBL_P,
G_VALUE_FROM_TBL_P,
G_PRODUCT_UOM_CODE_TBL_P,
G_EXCLUDER_FLAG_TBL_P,
G_AUTOMATIC_FLAG_TBL_P,
G_MODIFIER_LEVEL_CODE_TBL_P,
G_PRIMARY_UOM_FLAG_TBL_P,
G_OPER_CALCULATION_CODE_TBL_P,
G_OPERAND_VALUE_TBL_P,
G_PRICING_GROUP_SEQUENCE_TBL_P,
G_LIST_TYPE_CODE_TBL_P,
G_ROUNDING_FACTOR_TBL_P,
G_PRICING_PHASE_ID_TBL_P,
G_PRICE_BREAK_TYPE_CODE_TBL_P,
G_INCOMP_GRP_CODE_TBL_P,
G_PRICE_FORMULA_ID_TBL_P,
G_PRODUCT_PRECEDENCE_TBL_P,
G_LIST_LINE_NO_TBL_P,
G_ATTRIBUTE_LEVEL_TBL_PR,
G_ATTRIBUTE_TYPE_TBL_PR,
G_CONTEXT_TBL_PR,
G_ATTRIBUTE_TBL_PR,
G_VALUE_FROM_TBL_PR,
G_SETUP_VALUE_FROM_TBL_PR,
G_SETUP_VALUE_TO_TBL_PR,
G_OPERATOR_TYPE_TBL_PR,
G_DATATYPE_TBL_PR
,G_BREAK_UOM_TBL_P /* Proration */
,G_BREAK_CONTEXT_TBL_P /* Proration */
,G_BREAK_ATTRIBUTE_TBL_P /* Proration */
LIMIT nROWS;
engine_debug('last 4 cursors- multi-currency TRUE - insert_ldets2');
INSERT_LDETS_PRICE_LIST_MULT(
p_LINE_DETAIL_INDEX => G_LINE_DETAIL_INDEX_LD_TBL,
p_LINE_DETAIL_TYPE_CODE => G_LINE_DETAIL_TYPE_CODE_TBL,
p_PRICE_BREAK_TYPE_CODE => G_PRICE_BREAK_TYPE_CODE_TBL,
p_LINE_INDEX => G_LINE_INDEX_LD_TBL,
p_CREATED_FROM_LIST_HEADER_ID =>G_LIST_HEADER_ID_LD_TBL,
p_CREATED_FROM_LIST_LINE_ID =>G_LIST_LINE_ID_LD_TBL,
p_CREATED_FROM_LIST_LINE_TYPE =>G_LIST_LINE_TYPE_TBL,
p_CREATED_FROM_LIST_TYPE_CODE =>G_LIST_TYPE_CODE_TBL,
p_CREATED_FROM_SQL =>G_CREATED_FROM_SQL_TBL,
p_PRICING_GROUP_SEQUENCE =>G_PRICING_GROUP_SEQUENCE_TBL,
P_PRICING_PHASE_ID =>G_PRICING_PHASE_ID_TBL,
p_OPERAND_CALCULATION_CODE =>G_OPERAND_CALCULATION_CODE_TBL,
p_OPERAND_VALUE =>G_OPERAND_VALUE_TBL,
p_PRICE_FORMULA_ID =>G_PRICE_FORMULA_ID_TBL,
p_PRICING_STATUS_CODE =>G_PRICING_STATUS_CODE_LD_TBL,
p_PRICING_STATUS_TEXT =>G_PRICING_STATUS_TEXT_LD_TBL,
p_PRODUCT_PRECEDENCE =>G_PRODUCT_PRECEDENCE_TBL ,
p_INCOMPATABLILITY_GRP_CODE =>G_INCOMP_GRP_CODE_TBL,
p_PROCESSED_FLAG =>G_PROCESSED_FLAG_LD_TBL,
p_APPLIED_FLAG =>G_APPLIED_FLAG_LD_TBL,
p_AUTOMATIC_FLAG =>G_AUTOMATIC_FLAG_TBL,
p_PRIMARY_UOM_FLAG =>G_PRIMARY_UOM_FLAG_TBL,
p_MODIFIER_LEVEL_CODE =>G_MODIFIER_LEVEL_CODE_TBL,
p_LIST_LINE_NO =>G_LIST_LINE_NO_TBL,
p_ROUNDING_FACTOR =>G_ROUNDING_FACTOR_TBL,
p_CURRENCY_DETAIL_ID =>G_CURRENCY_DETAIL_ID_TBL,
p_CURRENCY_HEADER_ID =>G_CURRENCY_HEADER_ID_TBL,
p_SELLING_ROUNDING_FACTOR =>G_SELLING_ROUNDING_TBL,
p_ORDER_CURRENCY =>G_ORDER_CURRENCY_TBL,
p_PRICING_EFFECTIVE_DATE =>G_PRICING_EFFECTIVE_DATE_TBL,
p_BASE_CURRENCY_CODE =>G_BASE_CURRENCY_CODE_TBL,
P_BREAK_UOM_CODE =>G_BREAK_UOM_TBL, /* Proration */
P_BREAK_UOM_CONTEXT =>G_BREAK_CONTEXT_TBL, /* Proration */
P_BREAK_UOM_ATTRIBUTE =>G_BREAK_ATTRIBUTE_TBL, /* Proration */
x_status_code =>l_status_code,
x_status_text =>l_status_text);
INSERT_LDETS_PRICE_LIST_PVT( p_LINE_DETAIL_index => G_LINE_DETAIL_INDEX_LD_TBL,
p_LINE_DETAIL_TYPE_CODE => G_LINE_DETAIL_TYPE_CODE_TBL,
p_PRICE_BREAK_TYPE_CODE => G_PRICE_BREAK_TYPE_CODE_TBL,
p_LINE_INDEX => G_LINE_INDEX_LD_TBL,
p_CREATED_FROM_LIST_HEADER_ID =>G_LIST_HEADER_ID_LD_TBL,
p_CREATED_FROM_LIST_LINE_ID =>G_LIST_LINE_ID_LD_TBL,
p_CREATED_FROM_LIST_LINE_TYPE =>G_LIST_LINE_TYPE_TBL,
p_CREATED_FROM_LIST_TYPE_CODE =>G_LIST_TYPE_CODE_TBL,
p_CREATED_FROM_SQL =>G_CREATED_FROM_SQL_TBL,
p_PRICING_GROUP_SEQUENCE =>G_PRICING_GROUP_SEQUENCE_TBL,
P_PRICING_PHASE_ID =>G_PRICING_PHASE_ID_TBL,
p_OPERAND_CALCULATION_CODE =>G_OPERAND_CALCULATION_CODE_TBL,
p_OPERAND_VALUE =>G_OPERAND_VALUE_TBL,
p_PRICE_FORMULA_ID =>G_PRICE_FORMULA_ID_TBL,
p_PRICING_STATUS_CODE =>G_PRICING_STATUS_CODE_LD_TBL,
p_PRICING_STATUS_TEXT =>G_PRICING_STATUS_TEXT_LD_TBL,
p_PRODUCT_PRECEDENCE =>G_PRODUCT_PRECEDENCE_TBL ,
p_INCOMPATABLILITY_GRP_CODE =>G_INCOMP_GRP_CODE_TBL,
p_PROCESSED_FLAG =>G_PROCESSED_FLAG_LD_TBL,
p_APPLIED_FLAG =>G_APPLIED_FLAG_LD_TBL,
p_AUTOMATIC_FLAG =>G_AUTOMATIC_FLAG_TBL,
p_PRIMARY_UOM_FLAG =>G_PRIMARY_UOM_FLAG_TBL,
p_MODIFIER_LEVEL_CODE =>G_MODIFIER_LEVEL_CODE_TBL,
p_LIST_LINE_NO =>G_LIST_LINE_NO_TBL,
p_ROUNDING_FACTOR =>G_ROUNDING_FACTOR_TBL,
P_BREAK_UOM_CODE =>G_BREAK_UOM_TBL, /* Proration */
P_BREAK_UOM_CONTEXT =>G_BREAK_CONTEXT_TBL, /* Proration */
P_BREAK_UOM_ATTRIBUTE =>G_BREAK_ATTRIBUTE_TBL, /* Proration */
x_status_code =>l_status_code,
x_status_text =>l_status_text
);
INSERT_PRICE_LIST_ATTRS
( p_LINE_INDEX_tbl =>G_LINE_INDEX_tbl,
p_LINE_DETAIL_INDEX_tbl =>G_LINE_DETAIL_INDEX_tbl,
p_ATTRIBUTE_LEVEL_tbl =>G_ATTRIBUTE_LEVEL_tbl,
p_ATTRIBUTE_TYPE_tbl =>G_ATTRIBUTE_TYPE_tbl,
p_LIST_HEADER_ID_tbl =>G_LIST_HEADER_ID_tbl,
p_LIST_LINE_ID_tbl =>G_LIST_LINE_ID_tbl,
p_CONTEXT_tbl =>G_CONTEXT_tbl,
p_ATTRIBUTE_tbl =>G_ATTRIBUTE_tbl,
p_VALUE_FROM_tbl =>G_VALUE_FROM_tbl,
p_SETUP_VALUE_FROM_tbl =>G_SETUP_VALUE_FROM_tbl,
p_SETUP_VALUE_TO_tbl =>G_SETUP_VALUE_TO_tbl,
p_GROUPING_NUMBER_tbl => G_GROUPING_NUMBER_tbl,
p_COMPARISON_OPERATOR_TYPE_tbl =>G_COMPARISON_OPERATOR_TYPE_tbl,
p_VALIDATED_FLAG_tbl =>G_VALIDATED_FLAG_tbl,
p_APPLIED_FLAG_tbl =>G_APPLIED_FLAG_tbl,
p_PRICING_STATUS_CODE_tbl =>G_PRICING_STATUS_CODE_tbl,
p_PRICING_STATUS_TEXT_tbl =>G_PRICING_STATUS_TEXT_tbl,
p_QUALIFIER_PRECEDENCE_tbl =>G_QUALIFIER_PRECEDENCE_tbl,
p_DATATYPE_tbl =>G_DATATYPE_tbl,
p_PRICING_ATTR_FLAG_tbl =>G_PRICING_ATTR_FLAG_tbl,
p_QUALIFIER_TYPE_tbl =>G_QUALIFIER_TYPE_TBL,
p_product_uom_code_tbl =>G_PRODUCT_UOM_CODE_TBL,
p_excluder_flag_tbl =>G_EXCLUDER_FLAG_TBL,
p_PRICING_PHASE_ID_TBL =>G_PRICING_PHASE_ID_TBL_A,
p_INCOMPATABILITY_GRP_CODE_TBL =>G_INCOMP_GRP_CODE_TBL_A,
p_LINE_DETAIL_TYPE_CODE_TBL =>G_LINE_DETAIL_TYPE_CODE_TBL_A,
p_MODIFIER_LEVEL_CODE_TBL =>G_MODIFIER_LEVEL_CODE_TBL_A,
p_PRIMARY_UOM_FLAG_TBL =>G_PRIMARY_UOM_FLAG_TBL_A,
x_status_code =>l_status_code,
x_status_text =>l_status_text);
engine_debug('< In Select_Price_List_Lines>: '||SQLERRM);
END SELECT_PRICE_LIST_LINES;
|We need to make the list we selected from previous phase
|to become qualifier
|because price list might be a qualifier for a discount or promotion
+------------------------------------------------------------
*/
PROCEDURE Create_Qualifier_From_List( x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2)
AS
v_error_code VARCHAR2(240);
SELECT line_index
FROM qp_npreq_lines_tmp
WHERE line_type_code <> G_ORDER_LEVEL;
SELECT /*+ ORDERED index(qplat qp_preq_line_attrs_tmp_n2) l_check_modlist_cur */ 'X'
FROM qp_npreq_ldets_tmp qpld,
qp_npreq_line_attrs_tmp qplat
WHERE qpld.line_index = p_line_index
AND qpld.pricing_phase_id = G_PRICE_LIST_PHASE_ID
AND qpld.pricing_status_code = G_STATUS_NEW
AND qplat.line_index = qpld.line_index
AND qplat.pricing_status_code = G_STATUS_UNCHANGED
AND qplat.attribute_type = 'QUALIFIER'
AND qplat.context = 'MODLIST'
AND qplat.attribute = 'QUALIFIER_ATTRIBUTE4'
AND qplat.value_from = TO_CHAR(qpld.created_from_list_header_id);
SELECT /*+ index(qpll QP_PREQ_LINES_TMP_N2) */ qpll.line_index
FROM qp_npreq_lines_tmp qpll
WHERE qpll.line_type_code <> G_ORDER_LEVEL
AND NOT EXISTS (
SELECT /*+ ORDERED index(qpld QP_PREQ_LDETS_TMP_N1) index(qplat qp_preq_line_attrs_tmp_n2) l_check_modlist_cur */ 'X'
FROM qp_npreq_ldets_tmp qpld,
qp_npreq_line_attrs_tmp qplat
WHERE qpld.line_index = qpll.line_index
AND qpld.pricing_phase_id = G_PRICE_LIST_PHASE_ID
AND qpld.pricing_status_code = G_STATUS_NEW
AND qplat.line_index = qpld.line_index
AND qplat.pricing_status_code = G_STATUS_UNCHANGED
AND qplat.attribute_type = 'QUALIFIER'
AND qplat.context = 'MODLIST'
AND qplat.attribute = 'QUALIFIER_ATTRIBUTE4'
AND qplat.value_from = TO_CHAR(qpld.created_from_list_header_id));
SELECT ROWID
FROM qp_npreq_line_attrs_tmp
WHERE pricing_status_code = G_STATUS_UNCHANGED
AND attribute_type = 'QUALIFIER'
AND context = 'MODLIST'
AND attribute ='QUALIFIER_ATTRIBUTE4'
AND line_index = p_line_index
AND ROWNUM = 1; --just one record need to be returned
SELECT created_from_list_header_id
FROM qp_npreq_ldets_tmp
WHERE line_index = p_line_index
and created_from_list_line_type in (G_PRICE_LIST_TYPE,G_BY_PBH) -- Bug#2882115
and pricing_status_code = G_STATUS_NEW
and pricing_phase_id = G_PRICE_LIST_PHASE_ID;
UPDATE qp_npreq_lines_tmp a
SET pricing_status_code = G_STATUS_UPDATED
Where list_price_override_flag in ('Y', 'O') --po integration
AND line_type_code <> G_ORDER_LEVEL;
l_a_list_header_id_tbl.delete;
l_a_line_index_tbl.delete;
l_b_list_header_id_tbl.delete;
l_b_rowid_tbl.delete;
l_c_line_index_tbl.delete;
l_c_g_line_level_tbl.delete;
l_c_G_QUALIFIER_TYPE_tbl.delete;
l_c_G_LIST_HEADER_CONTEXT_tbl.delete;
l_c_QUALIFIER_ATTRIBUTE4_tbl.delete;
l_c_list_header_id_tbl.delete;
l_c_G_VALIDATED_tbl.delete;
l_c_G_LIST_APPLIED_tbl.delete;
l_c_G_STATUS_UNCHANGED_tbl.delete;
l_c_PRICING_STATUS_TEXT_tbl.delete;
l_c_pricing_status_text_tbl(C) := 'Inserted by Create_Qualifier_From_List';
UPDATE qp_npreq_lines_tmp
SET price_list_header_id = l_a_list_header_id_tbl(I)
WHERE line_index = l_a_line_index_tbl(I);
UPDATE qp_npreq_line_attrs_tmp
SET value_from = TO_CHAR(l_b_list_header_id_tbl(I))
WHERE rowid = l_b_rowid_tbl(I);
INSERT INTO qp_npreq_line_attrs_tmp
(LINE_INDEX,
ATTRIBUTE_LEVEL,
ATTRIBUTE_TYPE,
CONTEXT,
ATTRIBUTE,
VALUE_FROM,
VALIDATED_FLAG, --We may need to reset it to N
APPLIED_FLAG,
PRICING_STATUS_CODE,
PRICING_STATUS_TEXT
)
VALUES
(l_c_line_index_tbl(i),
l_c_g_line_level_tbl(i),
l_c_g_qualifier_type_tbl(i),
l_c_g_list_header_context_tbl(i),
l_c_qualifier_attribute4_tbl(i),
l_c_list_header_id_tbl(i),
l_c_g_validated_tbl(i),
l_c_g_list_applied_tbl(i),
l_c_g_status_unchanged_tbl(i), --as it is passed in as qualifiers from the callers
l_c_pricing_status_text_tbl(i));
UPDATE_ROUNDING_FACTOR (
QP_PREQ_GRP.G_MCURR_INSTALLED_USED,
l_status_code,
l_status_text);
|To tell the reasons why certain list line is deleted
+------------------------------------------------------------
*/
PROCEDURE Get_Reason (p_line_index IN PLS_INTEGER,
x_reason_code_tbl OUT NOCOPY VARCHAR_TYPE,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2) AS
/*
-- Can use N1 instead of N3
INDX,QP_PREQ_GRP.get_reason.l_reason_cur,qp_npreq_ldets_tmp_N1,LINE_INDEX,1
*/
CURSOR l_reason_cur(p_line_index IN PLS_INTEGER) IS
SELECT distinct pricing_status_code
FROM qp_npreq_ldets_tmp
WHERE line_index = p_line_index
AND pricing_status_code <> G_STATUS_NEW;
SELECT /*+ dynamic_sampling(1) */ qplt.LINE_INDEX,
qplt.LINE_TYPE_CODE,
qplt.PRICING_EFFECTIVE_DATE,
qplt.LINE_QUANTITY,
qplt.LINE_UOM_CODE,
qplt.PRICED_QUANTITY,
qplt.PRICED_UOM_CODE,
qplt.CURRENCY_CODE,
qplt.UNIT_PRICE,
qplt.PERCENT_PRICE,
qplt.UOM_QUANTITY,
qplt.PARENT_PRICE,
qplt.ADJUSTED_UNIT_PRICE,
qplt.PROCESSED_FLAG,
qplt.PRICE_FLAG,
qplt.PROCESSING_ORDER,
qplt.PRICING_STATUS_CODE,
qplt.PRICING_STATUS_TEXT,
qplt.GROUP_QUANTITY,
qplt.GROUP_AMOUNT,
qplt.ROUNDING_FLAG,
qplt.PRICE_LIST_HEADER_ID,
qplt.ROUNDING_FACTOR,
qplt.CATCHWEIGHT_QTY,
qplt.ACTUAL_ORDER_QUANTITY,
NVL(qplt.price_flag,G_YES)
FROM qp_npreq_lines_tmp qplt
WHERE qplt.PRICING_STATUS_CODE IN (G_STATUS_UNCHANGED, G_STATUS_UPDATED)
AND (qplt.PRICE_FLAG IN (G_YES,G_PHASE)
OR qplt.PROCESSED_CODE = G_BY_ENGINE)
AND nvl(qplt.USAGE_PRICING_TYPE,G_REGULAR_USAGE_TYPE) NOT IN
(G_AUTHORING_TYPE,G_BILLING_TYPE)
ORDER BY PROCESSING_ORDER;
SELECT /*+ index(qplt) */ --5658579
QPLT.LINE_DETAIL_INDEX,
QPLT.LINE_DETAIL_TYPE_CODE,
QPLT.LINE_INDEX,
QPLT.CREATED_FROM_LIST_HEADER_ID,
QPLT.CREATED_FROM_LIST_LINE_ID,
QPLT.CREATED_FROM_LIST_LINE_TYPE,
QPLT.CREATED_FROM_LIST_TYPE_CODE,
QPLT.PRICE_BREAK_TYPE_CODE,
QPLT.PRICING_GROUP_SEQUENCE,
QPLT.OPERAND_CALCULATION_CODE,
QPLT.OPERAND_VALUE,
QPLT.NET_AMOUNT_FLAG, -- IT net_amount 2720717
QPLT.AUTOMATIC_FLAG,
QPLT.ACCRUAL_FLAG,
QPLT.ACCRUAL_CONVERSION_RATE,
QPLT.ESTIM_ACCRUAL_RATE,
QPLT.RECURRING_VALUE, -- block pricing
QPLT.MODIFIER_LEVEL_CODE,
QPLT.GROUP_QUANTITY,
QPLT.GROUP_AMOUNT,
QPLT.LINE_QUANTITY, --2388011_new
QPLT.SELECTED_VOLUME_ATTR -- 2388011_new
FROM qp_npreq_ldets_tmp QPLT
WHERE QPLT.LINE_INDEX = L_LINE_INDEX
AND QPLT.PRICING_STATUS_CODE = G_STATUS_NEW
UNION
-- hints added as temporary R12 fix for 5573442
SELECT /*+ ORDERED USE_NL(QPLL QPLT) INDEX(QPLL) INDEX(QPLT) */ --5658579
QPLT.LINE_DETAIL_INDEX,
QPLT.LINE_DETAIL_TYPE_CODE,
QPLT.LINE_INDEX,
QPLT.CREATED_FROM_LIST_HEADER_ID,
QPLT.CREATED_FROM_LIST_LINE_ID,
QPLT.CREATED_FROM_LIST_LINE_TYPE,
QPLT.CREATED_FROM_LIST_TYPE_CODE,
QPLT.PRICE_BREAK_TYPE_CODE,
QPLT.PRICING_GROUP_SEQUENCE,
QPLT.OPERAND_CALCULATION_CODE,
QPLT.OPERAND_VALUE,
QPLT.NET_AMOUNT_FLAG, -- IT net_amount 2720717
QPLT.AUTOMATIC_FLAG,
QPLT.ACCRUAL_FLAG,
QPLT.ACCRUAL_CONVERSION_RATE,
QPLT.ESTIM_ACCRUAL_RATE,
QPLT.RECURRING_VALUE, -- block pricing
QPLT.MODIFIER_LEVEL_CODE,
QPLT.GROUP_QUANTITY,
QPLT.GROUP_AMOUNT,
QPLT.LINE_QUANTITY, --2388011_new
QPLT.SELECTED_VOLUME_ATTR -- 2388011_new
FROM qp_npreq_lines_tmp QPLL,
qp_npreq_ldets_tmp QPLT
WHERE QPLL.LINE_TYPE_CODE = G_ORDER_LEVEL
AND QPLT.LINE_INDEX = QPLL.LINE_INDEX
AND QPLT.PRICING_STATUS_CODE = G_STATUS_NEW
AND QPLT.CREATED_FROM_LIST_TYPE_CODE <> G_CHARGES_HEADER
ORDER BY 9; -- 9 - Pricing Group Sequence
SELECT VALUE_FROM,
VALUE_TO,
ATTRIBUTE
FROM qp_npreq_line_attrs_tmp
WHERE line_detail_index = l_line_detail_index
AND ATTRIBUTE_LEVEL = G_DETAIL_LEVEL;
SELECT /*+ index(qpp qp_pricing_attributes_n2) l_list_line_attribute_cur */ PRICING_ATTRIBUTE
FROM QP_PRICING_ATTRIBUTES qpp
WHERE LIST_LINE_ID = p_list_line_id
AND PRICING_ATTRIBUTE_CONTEXT = G_PRIC_VOLUME_CONTEXT;
SELECT LINE_INDEX
FROM qp_npreq_rltd_lines_tmp
WHERE RELATED_LINE_INDEX = l_line_index
AND RELATIONSHIP_TYPE_CODE = G_SERVICE_LINE;
SELECT UNIT_PRICE,
LINE_UNIT_PRICE, --fix bug 2776849, uom_service_pricing
PRICED_QUANTITY,
LINE_QUANTITY,
LINE_UOM_CODE --fix bug 2776849, uom_service_pricing
FROM qp_npreq_lines_tmp
WHERE LINE_INDEX = l_line_index;
SELECT 'X'
FROM qp_npreq_line_attrs_tmp
WHERE CONTEXT = G_CUSTOMER_CONTEXT
AND ATTRIBUTE = G_GSA_ATTRIBUTE
AND VALUE_FROM = G_YES
AND LINE_INDEX = p_line_index
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND ATTRIBUTE_TYPE = G_QUALIFIER_TYPE;
SELECT name
FROM qp_list_headers_v a
WHERE a.list_header_id = p_list_header_id;
SELECT qp_number.canonical_to_number(VALUE_FROM)
FROM qp_npreq_line_attrs_tmp
WHERE CONTEXT = G_PRIC_ITEM_CONTEXT
AND ATTRIBUTE = G_PRIC_ATTRIBUTE1
AND ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND LINE_INDEX = p_line_index
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED;
SELECT concatenated_segments
--INTO l_request_item_name
FROM mtl_system_items_vl
WHERE inventory_item_id = p_item_id
AND organization_id = QP_UTIL.Get_Item_Validation_Org;
/* UPDATE qp_npreq_ldets_tmp
SET PRICING_GROUP_SEQUENCE = NULL
WHERE AUTOMATIC_FLAG = G_NO; */
G_UNIT_PRICE_TBL_C.delete;
G_LINE_UNIT_PRICE_TBL_C.delete; -- shu_latest
G_ORDER_UOM_TBL_C.delete; -- bug 2693700
G_PERCENT_PRICE_TBL_C.delete;
G_ADJUSTED_UNIT_PRICE_TBL_C.delete;
G_PARENT_PRICE_TBL_C.delete;
G_PARENT_PRICED_QUANTITY_TBL_C.delete;
G_PARENT_LINE_QUANTITY_TBL_C.delete;
G_PARENT_LINE_UOM_TBL_C.delete;
G_LINE_INDEX_TBL_C.delete;
G_GSA_LINE_INDEX_TBL_C.delete;
G_EXTENDED_PRICE_TBL_C.delete; -- block pricing
G_ADJUSTMENT_AMOUNT_TBL_D.delete;
G_BENEFIT_QUANTITY_TBL_D.delete;
G_OPERAND_VALUE_TBL_D.delete;
G_QUALIFIER_VALUE_TBL_D.delete;
G_LINE_DETAIL_INDEX_TBL_D.delete;
G_LINE_QUANTITY_TBL_R.delete;
G_ADJUSTMENT_AMOUNT_TBL_R.delete;
G_LINE_DETAIL_INDEX_TBL_R.delete;
G_PARENT_PRICE_TBL_P.delete;
DELETE_LINES(l_err_line_index,
G_STATUS_OTHER_ERRORS,
'Could not find parent line for a child service line:'||l_err_line_index,
l_status_code,
l_status_text);
IF (K.SELECTED_VOLUME_ATTR = G_AMOUNT) THEN -- 2388011_new
p_cal_req_ldets_tbl(J).qualifier_value := nvl(K.line_quantity,0);
IF (K.SELECTED_VOLUME_ATTR = G_QUANTITY) THEN -- ravi_latest
p_cal_req_ldets_tbl(J).line_quantity := NVL(I.priced_quantity,I.line_quantity);
SELECT LINE_DETAIL_INDEX
INTO l_parent_line_detail_index
FROM qp_npreq_rltd_lines_tmp
WHERE RELATED_LINE_DETAIL_INDEX = K.line_detail_index;
DELETE_LINES(l_err_line_index,
G_STATUS_OTHER_ERRORS,
'Error returned by QP_Calculate_Price_PUB.Calculate_Price',
l_status_code,
l_status_text);
engine_debug ('In Line Update Information100');
engine_debug ('In Line Update Information200');
engine_debug ('In Line Update Information300');
engine_debug ('In Line Update Information3001');
engine_debug ('In Line Update Information400');
UPDATE qp_npreq_lines_tmp qplines
SET
PROCESSED_FLAG = G_PROCESSED,
PERCENT_PRICE = p_cal_req_line_rec.PERCENT_PRICE -- still keep the percent_price
WHERE qplines.LINE_INDEX = i.LINE_INDEX;
DELETE_LINES (i.LINE_INDEX,
G_STATUS_INVALID_PRICE_LIST,
l_message,
l_status_code,
l_status_text);
SET_STATUS_CODE(G_STATUS_DELETED,
l_message,
I.LINE_INDEX,
NULL,
'ATTRS',
l_status_code,
l_status_text);
SET_STATUS_CODE(G_STATUS_DELETED,
l_message,
I.LINE_INDEX,
NULL,
'LDETS',
l_status_code,
l_status_text);
p_cal_req_ldets_tbl.DELETE ;
p_cal_req_rltd_tbl.DELETE;
engine_debug ('In Line Update Information500');
engine_debug ('In Line Update Information');
UPDATE qp_npreq_lines_tmp qplines
SET PRICING_STATUS_CODE = G_STATUS_UPDATED,
PROCESSED_FLAG = G_PROCESSED,
UNIT_PRICE = G_UNIT_PRICE_TBL_C(M),
LINE_UNIT_PRICE = G_LINE_UNIT_PRICE_TBL_C(M), --shu_latest
-- ORDER_UOM_SELLING_PRICE = G_ORDER_UOM_TBL_C(M), -- bug 2693700
ORDER_UOM_SELLING_PRICE = l_unit_selling_price(M), --[prarasto:Post Round]
--ORDER_UOM_SELLING_PRICE_UR = l_unit_selling_price_ur(M), --[prarasto:Post Round], [julin/postround] redesign
PERCENT_PRICE = G_PERCENT_PRICE_TBL_C(M),
-- ADJUSTED_UNIT_PRICE = NVL(G_ADJUSTED_UNIT_PRICE_TBL_C(M), G_UNIT_PRICE_TBL_C(M)),
ADJUSTED_UNIT_PRICE = l_adjusted_unit_price(M), --[prarasto:Post Round]
--ADJUSTED_UNIT_PRICE_UR = l_adjusted_unit_price_ur(M), --[prarasto:Post Round], [julin/postround] redesign
PARENT_PRICE = G_PARENT_PRICE_TBL_C(M),
--PARENT_QUANTITY = NVL(G_PARENT_PRICED_QUANTITY_TBL_C(M),G_PARENT_LINE_QUANTITY_TBL_C(M)),
PARENT_QUANTITY = NVL(G_PARENT_LINE_QUANTITY_TBL_C(M), G_PARENT_PRICED_QUANTITY_TBL_C(M)), -- 2776849
--PARENT_UOM_CODE = G_PARENT_LINE_UOM_TBL_C(M),
PARENT_UOM_CODE = G_PARENT_LINE_UOM_TBL_C(M), -- 2776849
-- EXTENDED_PRICE = G_EXTENDED_PRICE_TBL_C(M) -- block pricing
EXTENDED_PRICE = l_extended_selling_price(M) --[prarasto:Post Round]
--EXTENDED_SELLING_PRICE_UR = l_extended_selling_price_ur(M) --[prarasto:Post Round], [julin/postround] redesign
WHERE qplines.LINE_INDEX = G_LINE_INDEX_TBL_C(M)
AND (qplines.PRICE_FLAG <> G_NO or qplines.PROCESSED_CODE = G_BY_ENGINE) --CURRENT OF l_request_line_cur;
engine_debug ('In Line Update Information600');
engine_debug ('In Line Detail Update Information1');
UPDATE qp_npreq_ldets_tmp
SET ADJUSTMENT_AMOUNT = G_ADJUSTMENT_AMOUNT_TBL_D(O),
--LINE_QUANTITY = G_QUALIFIER_VALUE_TBL_D(O),-- 2388011, ASK RAVI, either priced_quantity,group_quantity,group_amount
BENEFIT_QTY = G_BENEFIT_QUANTITY_TBL_D(O),
OPERAND_VALUE = G_OPERAND_VALUE_TBL_D(O) --2388011_new, remove comma
-- GROUP_QUANTITY = G_QUALIFIER_VALUE_TBL_D(O), --2388011_new
-- GROUP_AMOUNT = G_QUALIFIER_VALUE_TBL_D(O) --2388011_new
WHERE LINE_DETAIL_INDEX = G_LINE_DETAIL_INDEX_TBL_D(O);
engine_debug ('In Line Detail Update Information2');
UPDATE /*+ index(QP_NPREQ_LDETS_TMP QP_PREQ_LDETS_TMP_U1) */ qp_npreq_ldets_tmp --5658579
SET ADJUSTMENT_AMOUNT = G_ADJUSTMENT_AMOUNT_TBL_D(O),
--LINE_QUANTITY = G_QUALIFIER_VALUE_TBL_D(O), -- 2388011, ASK RAVI, either priced_quantity,group_quantity,group_amount
BENEFIT_QTY = G_BENEFIT_QUANTITY_TBL_D(O),
OPERAND_VALUE = G_OPERAND_VALUE_TBL_D(O),
--GROUP_QUANTITY = G_QUALIFIER_VALUE_TBL_D(O), --2388011_new
--GROUP_AMOUNT = G_QUALIFIER_VALUE_TBL_D(O), --2388011_new
APPLIED_FLAG = AUTOMATIC_FLAG
WHERE LINE_DETAIL_INDEX = G_LINE_DETAIL_INDEX_TBL_D(O);
engine_debug ('In Line Detail Update Information3');
UPDATE qp_npreq_ldets_tmp
SET ADJUSTMENT_AMOUNT = G_ADJUSTMENT_AMOUNT_TBL_R(O),
LINE_QUANTITY = G_LINE_QUANTITY_TBL_R(O)
WHERE LINE_DETAIL_INDEX = G_LINE_DETAIL_INDEX_TBL_R(O);
UPDATE qp_npreq_lines_tmp
SET PRICING_STATUS_CODE = G_STATUS_GSA_VIOLATION,
PRICING_STATUS_TEXT = l_status_text
WHERE LINE_INDEX = G_GSA_LINE_INDEX_TBL_C(K);
engine_debug ('In End Update Information');
G_UNIT_PRICE_TBL_C.delete;
G_PERCENT_PRICE_TBL_C.delete;
G_ADJUSTED_UNIT_PRICE_TBL_C.delete;
G_PARENT_PRICE_TBL_C.delete;
G_PARENT_PRICED_QUANTITY_TBL_C.delete;
G_PARENT_LINE_QUANTITY_TBL_C.delete;
G_PARENT_LINE_UOM_TBL_C.delete;
G_LINE_INDEX_TBL_C.delete;
G_GSA_LINE_INDEX_TBL_C.delete;
G_EXTENDED_PRICE_TBL_C.delete; -- block pricing
G_ADJUSTMENT_AMOUNT_TBL_D.delete;
G_BENEFIT_QUANTITY_TBL_D.delete;
G_OPERAND_VALUE_TBL_D.delete;
G_QUALIFIER_VALUE_TBL_D.delete;
G_LINE_DETAIL_INDEX_TBL_D.delete;
G_LINE_QUANTITY_TBL_R.delete;
G_ADJUSTMENT_AMOUNT_TBL_R.delete;
G_LINE_DETAIL_INDEX_TBL_R.delete;
DELETE_LINES(l_err_line_index,
G_STATUS_OTHER_ERRORS,
'Error returned by QP_Calculate_Price_PUB.Calculate_Price',
l_status_code,
l_status_text);
SELECT /*+ ORDERED USE_NL(b) index(b QP_PREQ_LDETS_TMP_N1) l_get_formula_id_cur */
b.LINE_INDEX , b.PRICE_FORMULA_ID,a.PRICING_EFFECTIVE_DATE,b.CREATED_FROM_LIST_LINE_ID,
b.OPERAND_CALCULATION_CODE , b.OPERAND_VALUE, b.CREATED_FROM_LIST_LINE_TYPE,b.LINE_DETAIL_TYPE_CODE,
b.GROUP_QUANTITY,b.LINE_QUANTITY GROUP_AMOUNT
FROM
qp_npreq_lines_tmp a,
qp_npreq_ldets_tmp b
WHERE a.LINE_INDEX = b.LINE_INDEX
AND b.PRICING_STATUS_CODE = G_STATUS_NEW
AND b.PRICING_PHASE_ID = p_pricing_phase_id
AND b.PRICE_FORMULA_ID IS NOT NULL;
SELECT UNIT_PRICE
FROM qp_npreq_lines_tmp
WHERE LINE_INDEX = p_line_index;
l_attr_inserted_flag BOOLEAN := FALSE;
SELECT /*+ dynamic_sampling(1) */ line_index, attribute_type, context, attribute,
pricing_status_code, qp_number.canonical_to_number(value_from)
FROM qp_npreq_line_attrs_tmp lattr
WHERE attribute_type IN ('PRICING', 'PRODUCT')
AND pricing_status_code = G_STATUS_UNCHANGED
AND EXISTS (SELECT format_type
FROM fnd_flex_value_sets VSET,
qp_segments_b SEGMENTS, qp_prc_contexts_b PCONTEXTS
WHERE vset.flex_value_set_id = segments.user_valueset_id
AND segments.application_id = 661
AND pcontexts.prc_context_type <> 'QUALIFIER'
AND pcontexts.prc_context_code = lattr.context
AND segments.segment_mapping_column = lattr.attribute
AND segments.prc_context_id = pcontexts.prc_context_id
AND vset.format_type = 'N');
SELECT line_index, attribute_type, context, attribute,
pricing_status_code, qp_number.canonical_to_number(value_from)
FROM qp_npreq_line_attrs_tmp lattr
WHERE attribute_type IN ('PRICING', 'PRODUCT', 'QUALIFIER')
AND pricing_status_code = G_STATUS_UNCHANGED
AND EXISTS (SELECT format_type
FROM fnd_flex_value_sets VSET,
qp_segments_b SEGMENTS, qp_prc_contexts_b PCONTEXTS
WHERE vset.flex_value_set_id = segments.user_valueset_id
AND segments.application_id = 661
AND pcontexts.prc_context_code = lattr.context
AND segments.segment_mapping_column = lattr.attribute
AND segments.prc_context_id = pcontexts.prc_context_id
AND vset.format_type = 'N');
SELECT lattr.value_from,lattr.context,
nvl(SEGMENTS_TL.SEEDED_SEGMENT_NAME,SEGMENTS_TL.USER_SEGMENT_NAME) attribute
FROM qp_npreq_line_attrs_tmp lattr, fnd_flex_value_sets VSET,
qp_segments_b SEGMENTS, qp_prc_contexts_b PCONTEXTS , qp_segments_tl SEGMENTS_TL
WHERE attribute_type IN ('PRICING', 'PRODUCT', 'QUALIFIER')
AND pricing_status_code = G_STATUS_UNCHANGED
AND vset.flex_value_set_id = segments.user_valueset_id
AND segments.application_id = 661
AND pcontexts.prc_context_code = lattr.context
AND segments.segment_mapping_column = lattr.attribute
AND segments.prc_context_id = pcontexts.prc_context_id
AND segments.segment_id = segments_tl.segment_id
AND vset.format_type = 'N';
SELECT line_index, attribute_type, context, attribute,
pricing_status_code, qp_number.canonical_to_number(value_from)
FROM qp_npreq_line_attrs_tmp lattr
WHERE attribute_type IN ('PRICING', 'PRODUCT')
AND pricing_status_code = G_STATUS_UNCHANGED
AND EXISTS (SELECT format_type
FROM fnd_flex_value_sets VSET,
fnd_descr_flex_column_usages DFLEX
WHERE vset.flex_value_set_id = dflex.flex_value_set_id
AND dflex.application_id = 661
AND dflex.descriptive_flexfield_name =
'QP_ATTR_DEFNS_PRICING'
AND dflex.descriptive_flex_context_code = lattr.context
AND dflex.application_column_name = lattr.attribute
AND vset.format_type = 'N');
IF G_INSERT_INTO_FORMULA_TMP
THEN
--Delete already existing rows from formula tmp table
DELETE FROM qp_preq_line_attrs_formula_tmp;
l_line_index_tbl.delete;
l_attribute_type_tbl.delete;
l_context_tbl.delete;
l_attribute_tbl.delete;
l_pricing_status_code_tbl.delete;
l_value_from_tbl.delete;
INSERT INTO qp_preq_line_attrs_formula_tmp
( line_index,
attribute_type,
context,
attribute,
pricing_status_code,
value_from
)
VALUES
( l_line_index_tbl(i),
l_attribute_type_tbl(i),
l_context_tbl(i),
l_attribute_tbl(i),
l_pricing_status_code_tbl(i),
qp_number.number_to_canonical(l_value_from_tbl(i))
);
l_line_index_tbl.delete;
l_attribute_type_tbl.delete;
l_context_tbl.delete;
l_attribute_tbl.delete;
l_pricing_status_code_tbl.delete;
l_value_from_tbl.delete;
INSERT INTO qp_preq_line_attrs_formula_tmp
( line_index,
attribute_type,
context,
attribute,
pricing_status_code,
value_from
)
VALUES
( l_line_index_tbl(i),
l_attribute_type_tbl(i),
l_context_tbl(i),
l_attribute_tbl(i),
l_pricing_status_code_tbl(i),
qp_number.number_to_canonical(l_value_from_tbl(i))
);
INSERT INTO qp_preq_line_attrs_formula_tmp
( line_index,
attribute_type,
context,
attribute,
pricing_status_code,
value_from
)
SELECT /*+ dynamic_sampling(1) */ line_index,
attribute_type,
context,
attribute,
pricing_status_code,
value_from
FROM qp_npreq_line_attrs_tmp lattr
WHERE
((nvl(l_pass_qualifiers, 'N') = 'Y'
AND attribute_type IN ('QUALIFIER'))
OR attribute_type IN ('PRICING', 'PRODUCT')) -- Changed for bug2806857
AND pricing_status_code = G_STATUS_UNCHANGED
AND NOT EXISTS (
SELECT format_type
FROM fnd_flex_value_sets VSET,
qp_segments_b SEGMENTS, qp_prc_contexts_b PCONTEXTS
WHERE vset.flex_value_set_id = segments.user_valueset_id
AND segments.application_id = 661
AND pcontexts.prc_context_type = decode(lattr.attribute_type,'PRICING','PRICING_ATTRIBUTE',
lattr.attribute_type) -- Changed for bug2806857
AND pcontexts.prc_context_code = lattr.context
AND segments.segment_mapping_column = lattr.attribute
AND segments.prc_context_id = pcontexts.prc_context_id
AND vset.format_type = 'N'); --by yangli 03/06/2002 9:30am
l_line_index_tbl.delete;
l_attribute_type_tbl.delete;
l_context_tbl.delete;
l_attribute_tbl.delete;
l_pricing_status_code_tbl.delete;
l_value_from_tbl.delete;
INSERT INTO qp_preq_line_attrs_formula_tmp
( line_index,
attribute_type,
context,
attribute,
pricing_status_code,
value_from
)
VALUES
( l_line_index_tbl(i),
l_attribute_type_tbl(i),
l_context_tbl(i),
l_attribute_tbl(i),
l_pricing_status_code_tbl(i),
qp_number.number_to_canonical(l_value_from_tbl(i))
);
INSERT INTO qp_preq_line_attrs_formula_tmp
( line_index,
attribute_type,
context,
attribute,
pricing_status_code,
value_from
)
SELECT line_index,
attribute_type,
context,
attribute,
pricing_status_code,
value_from
FROM qp_npreq_line_attrs_tmp lattr
WHERE attribute_type IN ('PRICING', 'PRODUCT')
AND pricing_status_code = G_STATUS_UNCHANGED
AND NOT EXISTS (
SELECT format_type
FROM fnd_flex_value_sets VSET,
fnd_descr_flex_column_usages DFLEX
WHERE vset.flex_value_set_id = dflex.flex_value_set_id
AND dflex.application_id = 661
AND dflex.descriptive_flexfield_name =
'QP_ATTR_DEFNS_PRICING'
AND dflex.descriptive_flex_context_code = lattr.context
AND dflex.application_column_name = lattr.attribute
AND vset.format_type = 'N');
G_INSERT_INTO_FORMULA_TMP := FALSE;
END IF; --If G_INSERT_INTO_FORMULA_TMP is true
IF(l_attr_inserted_flag = TRUE) THEN
DELETE FROM qp_preq_line_attrs_formula_tmp
WHERE line_index = i.line_index
AND context = 'VOLUME'
AND attribute IN ('PRICING_ATTRIBUTE4','PRICING_ATTRIBUTE5')
AND pricing_status_code = G_STATUS_UNCHANGED;
l_attr_inserted_flag := FALSE;
IF (i.group_quantity IS NOT NULL and l_attr_inserted_flag = FALSE) THEN
--Change flexible mask to mask below for formula pattern use.
qp_number.canonical_mask :=
'00999999999999999999999.99999999999999999999999999999999999999';
INSERT INTO qp_preq_line_attrs_formula_tmp
( line_index,
attribute_type,
context,
attribute,
pricing_status_code,
value_from
)
VALUES
( i.line_index,
G_PRICING_TYPE,
'VOLUME',
'PRICING_ATTRIBUTE4',
G_STATUS_UNCHANGED,
qp_number.number_to_canonical(i.group_quantity)
);
l_attr_inserted_flag := TRUE;
IF (i.group_amount IS NOT NULL and l_attr_inserted_flag = FALSE) THEN
--Change flexible mask to mask below for formula pattern use.
qp_number.canonical_mask :=
'00999999999999999999999.99999999999999999999999999999999999999';
INSERT INTO qp_preq_line_attrs_formula_tmp
( line_index,
attribute_type,
context,
attribute,
pricing_status_code,
value_from
)
VALUES
( i.line_index,
G_PRICING_TYPE,
'VOLUME',
'PRICING_ATTRIBUTE5',
G_STATUS_UNCHANGED,
qp_number.number_to_canonical(i.group_amount)
);
l_attr_inserted_flag := TRUE;
UPDATE qp_npreq_ldets_tmp --upd1
SET OPERAND_VALUE = l_formula_based_price
WHERE CREATED_FROM_LIST_LINE_ID = i.CREATED_FROM_LIST_LINE_ID
AND PRICING_PHASE_ID = p_pricing_phase_id
AND LINE_INDEX = i.line_index
AND PRICING_STATUS_CODE = G_STATUS_NEW;
UPDATE qp_npreq_lines_tmp --upd2
SET UNIT_PRICE = l_formula_based_price,
PRICING_STATUS_CODE = G_STATUS_UPDATED,
PRICING_STATUS_TEXT ='Priced by formula'
WHERE LINE_INDEX = i.line_index;
UPDATE qp_npreq_ldets_tmp --upd3
SET OPERAND_VALUE = l_formula_based_price
WHERE CREATED_FROM_LIST_LINE_ID = i.CREATED_FROM_LIST_LINE_ID
AND PRICING_PHASE_ID = p_pricing_phase_id
AND LINE_INDEX = i.line_index
AND PRICING_STATUS_CODE = G_STATUS_NEW;
UPDATE qp_npreq_lines_tmp --upd4
SET PERCENT_PRICE = l_formula_based_price,
PRICING_STATUS_CODE = G_STATUS_UPDATED,
PRICING_STATUS_TEXT ='Priced by formula'
WHERE LINE_INDEX = i.line_index;
UPDATE qp_npreq_ldets_tmp --upd5
SET OPERAND_VALUE = l_formula_based_price
WHERE CREATED_FROM_LIST_LINE_ID = i.CREATED_FROM_LIST_LINE_ID
AND PRICING_PHASE_ID = p_pricing_phase_id
AND LINE_INDEX = i.line_index
AND PRICING_STATUS_CODE = G_STATUS_NEW;
UPDATE qp_npreq_rltd_lines_tmp
SET OPERAND = l_formula_based_price
WHERE RELATED_LIST_LINE_ID = i.CREATED_FROM_LIST_LINE_ID --bug#2875361
AND LINE_INDEX = i.line_index
AND PRICING_STATUS_CODE = G_STATUS_NEW
AND RELATIONSHIP_TYPE_CODE = G_PBH_LINE;
G_INSERT_INTO_FORMULA_TMP := FALSE; --Reset Global Flag ( Change)
DELETE_LINES(l_line_index,
G_STATUS_FORMULA_ERROR,
FND_MESSAGE.GET,
l_status_code,
l_status_text);
G_INSERT_INTO_FORMULA_TMP := FALSE; --Reset Global Flag ( Change)
DELETE_LINES(l_line_index,
G_STATUS_FORMULA_ERROR,
FND_MESSAGE.GET,
l_status_code,
l_status_text);
G_INSERT_INTO_FORMULA_TMP := FALSE; --Reset Global Flag ( Change)
DELETE_LINES(l_line_index,
G_STATUS_FORMULA_ERROR,
FND_MESSAGE.GET,
l_status_code,
l_status_text);
G_INSERT_INTO_FORMULA_TMP := FALSE; --Reset Global Flag ( Change)
DELETE_LINES(l_line_index,
G_STATUS_FORMULA_ERROR,
FND_MESSAGE.GET,
l_status_code,
l_status_text);
--Delete from qp_npreq_lines_tmp;
--Delete from qp_npreq_line_attrs_tmp;
--Delete From qp_npreq_ldets_tmp;
--Delete From qp_npreq_rltd_lines_tmp;
select count(*) into l_count from qp_npreq_lines_tmp;
select count(*) into l_count from qp_npreq_line_attrs_tmp;
select count(*) into l_count from qp_npreq_ldets_tmp;
--Delete from qp_int_lines;
--Delete from qp_int_line_attrs;
--Delete From qp_int_ldets;
--Delete From qp_int_rltd_lines;
select count(*) into l_count from qp_int_lines;
select count(*) into l_count from qp_int_line_attrs;
select count(*) into l_count from qp_int_ldets;
SELECT line_index
FROM qp_npreq_lines_tmp
WHERE pricing_status_code = G_STATUS_UPDATED
AND (PRICE_FLAG = G_YES
OR
(PRICE_FLAG = G_PHASE
AND
p_freeze_override_flag = G_YES)
);
SELECT line_detail_index
FROM qp_npreq_ldets_tmp
WHERE PRICING_STATUS_CODE = G_STATUS_NEW
AND PRICING_PHASE_ID = p_pricing_phase_id
AND MODIFIER_LEVEL_CODE = G_ORDER_LEVEL;
INSERT INTO qp_npreq_rltd_lines_tmp
(LINE_INDEX,RELATED_LINE_DETAIL_INDEX,RELATIONSHIP_TYPE_CODE,PRICING_STATUS_CODE)
VALUES
(l_line_index_tbl(K),l_line_detail_index_tbl1(K),G_ORDER_TO_LINE,G_STATUS_NEW);
SELECT PHASE_SEQUENCE,PRICING_PHASE_ID
INTO G_PRICE_LIST_SEQUENCE,G_PRICE_LIST_PHASE_ID
FROM QP_PRICING_PHASES
WHERE LIST_TYPE_CODE = 'PRL'
AND ROWNUM < 2;
PROCEDURE INSERT_QUALIFIER_HIERARCHY
IS
l_count number;
select count(*) into l_count from qp_npreq_line_attrs_tmp;
engine_debug('count of attr before insert '|| l_count);
INSERT INTO qp_npreq_line_attrs_tmp
( LINE_INDEX
,LINE_DETAIL_INDEX
,ATTRIBUTE_LEVEL
,ATTRIBUTE_TYPE
,LIST_HEADER_ID
,LIST_LINE_ID
,CONTEXT
,ATTRIBUTE
,VALUE_FROM
,SETUP_VALUE_FROM
,VALUE_TO
,SETUP_VALUE_TO
,GROUPING_NUMBER
,NO_QUALIFIERS_IN_GRP
,COMPARISON_OPERATOR_TYPE_CODE
,VALIDATED_FLAG
,APPLIED_FLAG
,PRICING_STATUS_CODE
,PRICING_STATUS_TEXT
,QUALIFIER_PRECEDENCE
,PRICING_ATTR_FLAG
,QUALIFIER_TYPE
,DATATYPE
,PRODUCT_UOM_CODE
,PROCESSED_CODE
,EXCLUDER_FLAG
,GROUP_QUANTITY
,GROUP_AMOUNT
,DISTINCT_QUALIFIER_FLAG
,PRICING_PHASE_ID
,INCOMPATABILITY_GRP_CODE
,LINE_DETAIL_TYPE_CODE
,MODIFIER_LEVEL_CODE
,PRIMARY_UOM_FLAG
,REQUEST_ID
,DERIVED_QUALIFIER_FLAG)
SELECT /*+ ORDERED use_nl(qpc qs hn) index(qnlat QP_PREQ_LINE_ATTRS_TMP_N2) */
qnlat.LINE_INDEX
,qnlat.LINE_DETAIL_INDEX
,qnlat.ATTRIBUTE_LEVEL
,qnlat.ATTRIBUTE_TYPE
,qnlat.LIST_HEADER_ID
,qnlat.LIST_LINE_ID
,qnlat.CONTEXT
,qnlat.ATTRIBUTE
,to_char(hn.PARENT_ID)
,qnlat.SETUP_VALUE_FROM
,qnlat.VALUE_TO
,qnlat.SETUP_VALUE_TO
,qnlat.GROUPING_NUMBER
,qnlat.NO_QUALIFIERS_IN_GRP
,qnlat.COMPARISON_OPERATOR_TYPE_CODE
,qnlat.VALIDATED_FLAG
,qnlat.APPLIED_FLAG
,qnlat.PRICING_STATUS_CODE
,qnlat.PRICING_STATUS_TEXT
,qnlat.QUALIFIER_PRECEDENCE
,qnlat.PRICING_ATTR_FLAG
,qnlat.QUALIFIER_TYPE
,qnlat.DATATYPE
,qnlat.PRODUCT_UOM_CODE
,qnlat.PROCESSED_CODE
,qnlat.EXCLUDER_FLAG
,qnlat.GROUP_QUANTITY
,qnlat.GROUP_AMOUNT
,qnlat.DISTINCT_QUALIFIER_FLAG
,qnlat.PRICING_PHASE_ID
,qnlat.INCOMPATABILITY_GRP_CODE
,qnlat.LINE_DETAIL_TYPE_CODE
,qnlat.MODIFIER_LEVEL_CODE
,qnlat.PRIMARY_UOM_FLAG
,qnlat.REQUEST_ID
,'Y'
FROM qp_npreq_line_attrs_tmp qnlat,
qp_prc_contexts_b qpc,
qp_segments_b qs,
HZ_HIERARCHY_NODES hn
WHERE qnlat.pricing_status_code = G_STATUS_UNCHANGED
AND qnlat.attribute_type = G_QUALIFIER_TYPE
AND qpc.PRC_CONTEXT_TYPE = 'QUALIFIER'
AND qpc.PRC_CONTEXT_CODE = qnlat.CONTEXT
AND qs.SEGMENT_MAPPING_COLUMN = qnlat.ATTRIBUTE
AND qs.PRC_CONTEXT_ID = qpc.PRC_CONTEXT_ID
AND qs.PARTY_HIERARCHY_ENABLED_FLAG = 'Y'
AND nvl(qs.user_format_type, qs.seeded_format_type) = G_NUMERIC
AND hn.CHILD_ID = to_number(qnlat.VALUE_FROM)
AND hn.child_table_name = 'HZ_PARTIES'
AND hn.HIERARCHY_TYPE = FND_PROFILE.VALUE('QP_PRICING_PARTY_HIERARCHY_TYPE')
AND trunc(nvl(hn.EFFECTIVE_START_DATE,sysdate)) <= trunc(sysdate)
AND trunc(nvl(hn.EFFECTIVE_END_DATE,sysdate)) >= trunc(sysdate)
AND hn.LEVEL_NUMBER > 0;
END INSERT_QUALIFIER_HIERARCHY;
SELECT QPP.PRICING_PHASE_ID,
QPP.LIST_TYPE_CODE,
nvl(QPEP.USER_SEARCH_FLAG,QPEP.SEARCH_FLAG) SEARCH_FLAG,
nvl(QPP.USER_INCOMPAT_RESOLVE_CODE,QPP.INCOMPAT_RESOLVE_CODE) INCOMPAT_RESOLVE_CODE,
QPP.PHASE_SEQUENCE,
nvl(QPP.USER_FREEZE_OVERRIDE_FLAG,QPP.FREEZE_OVERRIDE_FLAG) FREEZE_OVERRIDE_FLAG,
QPP.NAME
--QPEP.PRICING_EVENT_CODE
FROM QP_PRICING_PHASES QPP, QP_EVENT_PHASES QPEP
WHERE ((L_MANUAL_ADJUSTMENTS_CALL_FLAG IS NULL)
OR
(L_MANUAL_ADJUSTMENTS_CALL_FLAG = 'N' AND
NVL(QPP.MANUAL_MODIFIER_FLAG,'B') in ('A', 'B'))
OR
(L_MANUAL_ADJUSTMENTS_CALL_FLAG = 'Y' AND
(L_RETURN_MANUAL_DISCOUNT = 'N' AND
NVL(QPP.MANUAL_MODIFIER_FLAG,'B') in ('M', 'B'))
OR
(L_RETURN_MANUAL_DISCOUNT = 'Y')
)
)
AND QPEP.PRICING_EVENT_CODE IN
(SELECT decode(rownum
,1 ,substr(l_event_code,1,instr(l_event_code1,',',1,1)-1)
,2 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,3 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,4 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,5 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,6 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1)))
FROM qp_event_phases
WHERE rownum < 7)
AND trunc(sysdate) between trunc(nvl(QPEP.START_DATE_ACTIVE,sysdate))
and trunc(nvl(QPEP.END_DATE_ACTIVE,sysdate))
AND QPP.PRICING_PHASE_ID = QPEP.PRICING_PHASE_ID
-- if p_control_rec.get_freight_flag is 'Y' then select phases from qp_pricing_phases table freight_exists column has value 'Y'
AND ((nvl(p_control_rec.get_freight_flag, G_NO) = G_YES AND QPP.freight_exists = G_YES) OR
(nvl(p_control_rec.get_freight_flag, G_NO) = G_NO))
ORDER BY 5,3 DESC;
SELECT QPP.PRICING_PHASE_ID,
QPP.LIST_TYPE_CODE,
nvl(QPEP.USER_SEARCH_FLAG,QPEP.SEARCH_FLAG) SEARCH_FLAG,
nvl(QPP.USER_INCOMPAT_RESOLVE_CODE,QPP.INCOMPAT_RESOLVE_CODE) INCOMPAT_RESOLVE_CODE,
QPP.PHASE_SEQUENCE,
nvl(QPP.USER_FREEZE_OVERRIDE_FLAG,QPP.FREEZE_OVERRIDE_FLAG) FREEZE_OVERRIDE_FLAG
--QPEP.PRICING_EVENT_CODE
FROM QP_PRICING_PHASES QPP, QP_EVENT_PHASES QPEP
WHERE L_MANUAL_ADJUSTMENTS_CALL_FLAG = 'N'
AND NVL(QPP.MANUAL_MODIFIER_FLAG,'B') in ('A', 'B')
AND QPEP.PRICING_EVENT_CODE IN
(SELECT decode(rownum
,1 ,substr(l_event_code,1,instr(l_event_code1,',',1,1)-1)
,2 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,3 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,4 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,5 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,6 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1)))
FROM qp_event_phases
WHERE rownum < 7)
AND trunc(sysdate) between trunc(nvl(QPEP.START_DATE_ACTIVE,sysdate))
and trunc(nvl(QPEP.END_DATE_ACTIVE,sysdate))
AND QPP.PRICING_PHASE_ID = QPEP.PRICING_PHASE_ID
-- if p_control_rec.get_freight_flag is 'Y' then select phases from qp_pricing_phases table freight_exists column has value 'Y'
AND ((nvl(p_control_rec.get_freight_flag, G_NO) = G_YES AND QPP.freight_exists = G_YES) OR
(nvl(p_control_rec.get_freight_flag, G_NO) = G_NO))
UNION
SELECT QPP.PRICING_PHASE_ID,
QPP.LIST_TYPE_CODE,
nvl(QPEP.USER_SEARCH_FLAG,QPEP.SEARCH_FLAG) SEARCH_FLAG,
nvl(QPP.USER_INCOMPAT_RESOLVE_CODE,QPP.INCOMPAT_RESOLVE_CODE) INCOMPAT_RESOLVE_CODE,
QPP.PHASE_SEQUENCE,
nvl(QPP.USER_FREEZE_OVERRIDE_FLAG,QPP.FREEZE_OVERRIDE_FLAG) FREEZE_OVERRIDE_FLAG
--QPEP.PRICING_EVENT_CODE
FROM QP_PRICING_PHASES QPP, QP_EVENT_PHASES QPEP
WHERE L_MANUAL_ADJUSTMENTS_CALL_FLAG = 'Y'
AND L_RETURN_MANUAL_DISCOUNT = 'N'
AND NVL(QPP.MANUAL_MODIFIER_FLAG,'B') in ('M', 'B')
AND QPEP.PRICING_EVENT_CODE IN
(SELECT decode(rownum
,1 ,substr(l_event_code,1,instr(l_event_code1,',',1,1)-1)
,2 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,3 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,4 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,5 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,6 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1)))
FROM qp_event_phases
WHERE rownum < 7)
AND trunc(sysdate) between trunc(nvl(QPEP.START_DATE_ACTIVE,sysdate))
and trunc(nvl(QPEP.END_DATE_ACTIVE,sysdate))
AND QPP.PRICING_PHASE_ID = QPEP.PRICING_PHASE_ID
-- if p_control_rec.get_freight_flag is 'Y' then select phases from qp_pricing_phases table freight_exists column has value 'Y'
AND ((nvl(p_control_rec.get_freight_flag, G_NO) = G_YES AND QPP.freight_exists = G_YES) OR
(nvl(p_control_rec.get_freight_flag, G_NO) = G_NO))
UNION
SELECT QPP.PRICING_PHASE_ID,
QPP.LIST_TYPE_CODE,
nvl(QPEP.USER_SEARCH_FLAG,QPEP.SEARCH_FLAG) SEARCH_FLAG,
nvl(QPP.USER_INCOMPAT_RESOLVE_CODE,QPP.INCOMPAT_RESOLVE_CODE) INCOMPAT_RESOLVE_CODE,
QPP.PHASE_SEQUENCE,
nvl(QPP.USER_FREEZE_OVERRIDE_FLAG,QPP.FREEZE_OVERRIDE_FLAG) FREEZE_OVERRIDE_FLAG
--QPEP.PRICING_EVENT_CODE
FROM QP_PRICING_PHASES QPP, QP_EVENT_PHASES QPEP
WHERE L_MANUAL_ADJUSTMENTS_CALL_FLAG = 'Y'
AND L_RETURN_MANUAL_DISCOUNT = 'Y'
AND QPEP.PRICING_EVENT_CODE IN
(SELECT decode(rownum
,1 ,substr(l_event_code,1,instr(l_event_code1,',',1,1)-1)
,2 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,3 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,4 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,5 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,6 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1)))
FROM qp_event_phases
WHERE rownum < 7)
AND trunc(sysdate) between trunc(nvl(QPEP.START_DATE_ACTIVE,sysdate))
and trunc(nvl(QPEP.END_DATE_ACTIVE,sysdate))
AND QPP.PRICING_PHASE_ID = QPEP.PRICING_PHASE_ID
-- if p_control_rec.get_freight_flag is 'Y' then select phases from qp_pricing_phases table freight_exists column has value 'Y'
AND ((nvl(p_control_rec.get_freight_flag, G_NO) = G_YES AND QPP.freight_exists = G_YES) OR
(nvl(p_control_rec.get_freight_flag, G_NO) = G_NO))*/
/* CURSOR l_phase_cur(l_event_code VARCHAR2,
l_event_code1 VARCHAR2) IS
SELECT QPP.PRICING_PHASE_ID,
QPP.LIST_TYPE_CODE,
nvl(QPEP.USER_SEARCH_FLAG,QPEP.SEARCH_FLAG) SEARCH_FLAG,
nvl(QPP.USER_INCOMPAT_RESOLVE_CODE,QPP.INCOMPAT_RESOLVE_CODE) INCOMPAT_RESOLVE_CODE,
QPP.PHASE_SEQUENCE,
nvl(QPP.USER_FREEZE_OVERRIDE_FLAG,QPP.FREEZE_OVERRIDE_FLAG) FREEZE_OVERRIDE_FLAG
--QPEP.PRICING_EVENT_CODE
FROM QP_PRICING_PHASES QPP, QP_EVENT_PHASES QPEP
WHERE QPEP.PRICING_EVENT_CODE IN
(SELECT decode(rownum
,1 ,substr(l_event_code,1,instr(l_event_code1,',',1,1)-1)
,2 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,3 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,4 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,5 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,6 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1)))
FROM qp_event_phases
WHERE rownum < 7)
AND trunc(sysdate) between trunc(nvl(QPEP.START_DATE_ACTIVE,sysdate))
and trunc(nvl(QPEP.END_DATE_ACTIVE,sysdate))
AND QPP.PRICING_PHASE_ID = QPEP.PRICING_PHASE_ID
-- if p_control_rec.get_freight_flag is 'Y' then select phases from qp_pricing_phases table freight_exists column has value 'Y'
AND ((nvl(p_control_rec.get_freight_flag, G_NO) = G_YES AND QPP.freight_exists = G_YES) OR
(nvl(p_control_rec.get_freight_flag, G_NO) = G_NO))
ORDER BY QPP.PHASE_SEQUENCE,SEARCH_FLAG DESC; */
SELECT DISTINCT LINE_INDEX
FROM qp_npreq_ldets_tmp
WHERE PRICING_PHASE_ID = p_pricing_phase_id
AND PRICING_STATUS_CODE = G_STATUS_NEW;
SELECT UNIT_PRICE,LINE_QUANTITY,PRICED_QUANTITY,PRICED_UOM_CODE,LINE_UOM_CODE,PRICING_EFFECTIVE_DATE
FROM qp_npreq_lines_tmp
WHERE LINE_INDEX = p_line_index;
SELECT 'X'
FROM dual
WHERE EXISTS
(Select 'X'
--From QP_PRICE_REQ_SOURCES
From QP_PRICE_REQ_SOURCES_V /* yangli */
Where REQUEST_TYPE_CODE
In (SELECT REQUEST_TYPE_CODE
FROM qp_npreq_lines_tmp));
SELECT REQUEST_TYPE_CODE
FROM qp_npreq_lines_tmp
WHERE rownum=1;
SELECT REQUEST_TYPE_CODE,LINE_INDEX,LINE_TYPE_CODE,PRICE_FLAG,PRICE_LIST_HEADER_ID,ROUNDING_FACTOR
FROM qp_npreq_lines_tmp;
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,LINE_INDEX,1
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,PRICING_PHASE_ID,2
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,ASK_FOR_FLAG,3
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,CREATED_FROM_LIST_LINE_TYPE,4
*/
CURSOR l_chk_deleted_pbh_cur(p_line_index IN PLS_INTEGER,
p_pricing_phase_id NUMBER) IS
SELECT 'X'
FROM qp_npreq_ldets_tmp
WHERE created_from_list_line_type = G_PRICE_BREAK_TYPE
AND line_index = p_line_index
AND pricing_phase_id = p_pricing_phase_id
AND pricing_status_code <> G_STATUS_NEW;
SELECT 'x'
FROM dual
WHERE
EXISTS (
select /*+ ORDERED */ 'x'
from qp_list_header_phases lhp, qp_list_headers_b qplh
where lhp.pricing_phase_id = p_phase_id
and qplh.list_header_id = lhp.list_header_id
and qplh.active_flag = 'Y')
OR
EXISTS (
select /*+ ORDERED */ 'x'
from qp_list_lines qpll, qp_list_headers_b qplh
where qpll.pricing_phase_id = p_phase_id
and qpll.qualification_ind in (0, 4, 20)
and qpll.list_header_id = qplh.list_header_id
and qplh.active_flag = 'Y');
select 'x'
from qp_list_headers_b qplh, qp_list_lines qpll
where qplh.active_flag = 'Y'
and qplh.list_type_code not in ('PRL', 'AGR', 'PML')
and qpll.list_header_id = qplh.list_header_id
and qpll.pricing_phase_id = p_phase_id
and qpll.qualification_ind in (0, 2, 4, 6, 8, 10, 12, 14, 20, 22, 28, 30)
and rownum = 1;
select 'X' from dual
where exists (select 'X' from qp_list_lines
where pricing_phase_id = p_phase_id
AND modifier_level_code IN ('LINE','LINEGROUP','ORDER') --3169430
and rownum = 1);*/
SELECT CONTEXT,
ATTRIBUTE,
VALUE_FROM,
LINE_INDEX,
LINE_DETAIL_INDEX
FROM qp_npreq_line_attrs_tmp;
SELECT b.pricing_phase_id,b.freeze_override_flag
FROM qp_event_phases a , qp_pricing_phases b
WHERE a.pricing_event_code in (SELECT decode(rownum
,1 ,substr(l_event_code,1,instr(l_event_code1,',',1,1)-1)
,2 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,3 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,4 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,5 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
,6 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1)))
FROM qp_event_phases
WHERE rownum < 7)
AND a.pricing_phase_id = G_PRICE_LIST_PHASE_ID
AND b.pricing_phase_id = G_PRICE_LIST_PHASE_ID
AND trunc(sysdate) BETWEEN trunc(nvl(a.START_DATE_ACTIVE,sysdate))
AND trunc(nvl(a.END_DATE_ACTIVE,sysdate));
SELECT MAX(LINE_DETAIL_INDEX)
FROM qp_npreq_ldets_tmp;
SELECT HEADER_LIMIT_EXISTS,LINE_LIMIT_EXISTS
FROM qp_npreq_ldets_tmp
WHERE PRICING_STATUS_CODE = G_STATUS_NEW
AND HEADER_LIMIT_EXISTS = G_YES ;
select nvl(sum(nvl(line_unit_price * line_quantity, UNIT_PRICE * PRICED_QUANTITY)),0)
FROM qp_npreq_lines_tmp
WHERE charge_periodicity_code is NULL; -- added for recurring charges Bug # 4465168
SELECT 'X'
FROM qp_limit_transactions
WHERE price_request_code > fnd_global.local_chr(0);
SELECT status
FROM fnd_product_installations
WHERE application_id=l_product_app_id;
SELECT lattr.value_from,lattr.value_to,lattr.context,
nvl(SEGMENTS_TL.SEEDED_SEGMENT_NAME,SEGMENTS_TL.USER_SEGMENT_NAME) attribute
FROM qp_npreq_line_attrs_tmp lattr,fnd_flex_value_sets VSET,
qp_segments_b SEGMENTS, qp_prc_contexts_b PCONTEXTS, qp_segments_tl SEGMENTS_TL
WHERE attribute_type = G_PRICING_TYPE
AND pricing_status_code = G_STATUS_UNCHANGED
AND vset.flex_value_set_id = segments.user_valueset_id
AND segments.application_id = 661
AND pcontexts.prc_context_type <> 'QUALIFIER'
AND pcontexts.prc_context_code = lattr.context
AND segments.segment_mapping_column = lattr.attribute
AND segments.prc_context_id = pcontexts.prc_context_id
AND segments.segment_id = segments_tl.segment_id
AND vset.format_type = 'N';
SELECT value_from,value_to,context,attribute
FROM qp_npreq_line_attrs_tmp lattr
WHERE attribute_type = G_PRICING_TYPE
AND pricing_status_code = G_STATUS_UNCHANGED
AND exists (
SELECT format_type
FROM fnd_flex_value_sets VSET,fnd_descr_flex_column_usages DFLEX
WHERE vset.flex_value_set_id = dflex.flex_value_set_id
AND dflex.application_id = 661
AND dflex.descriptive_flexfield_name = 'QP_ATTR_DEFNS_PRICING'
AND dflex.descriptive_flex_context_code = lattr.context
AND dflex.application_column_name = lattr.attribute
AND vset.format_type = 'N');
select line_index, unit_price, price_flag
from qp_npreq_lines_tmp
where QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Running = 'N'
UNION ALL
select line_index, unit_price, price_flag
from qp_int_lines
where QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Running = 'Y';
select value into l_pricing_start_redo
from v$mystat, v$statname
where v$mystat.statistic# = v$statname.statistic#
and v$statname.name = 'redo size';
G_TEMP_TABLE_INSERT_FLAG := nvl(p_control_rec.temp_table_insert_flag,'Y');
G_CHILD_VALUE_FROM_TBL.delete;
G_CHILD_VALUE_TO_TBL.delete;
G_PARENT_LINE_DETAIL_INDEX_TBL.delete;
G_INSERT_INTO_FORMULA_TMP := FALSE;
G_INSERT_FORMULA_STEP_VALUES := nvl(FND_PROFILE.VALUE('QP_INSERT_FORMULA_STEP_VALUES'),'Y');
IF (G_TEMP_TABLE_INSERT_FLAG = G_YES) THEN
QP_Price_Request_Context.Set_Request_Id;
IF G_TEMP_TABLE_INSERT_FLAG = G_YES THEN -- pl/sql path
IF (p_line_tbl.COUNT > 0) THEN
IF G_DEBUG_ENGINE = FND_API.G_TRUE THEN
engine_debug('There are lines to be priced');
ELSE --G_TEMP_TABLE_INSERT_FLAG = 'N', direct insert/performance path, shulin dbg 2437534
--FOR cl IN (select line_index, unit_price, price_flag from qp_npreq_lines_tmp)
FOR cl IN l_lines_info_cur --by yangli for Java Engine changes
LOOP
IF G_DEBUG_ENGINE = FND_API.G_TRUE THEN
engine_debug('In direct insert Loop / performance path');
END IF;--temp_table_insert_flag
IF (G_TEMP_TABLE_INSERT_FLAG = G_YES) THEN -- If records are inserted in pricing engine from pl/sql tables
IF G_DEBUG_ENGINE = FND_API.G_TRUE THEN
engine_debug('Check to see if all the lines have price flag N');
IF G_TEMP_TABLE_INSERT_FLAG = G_YES THEN
/*Truncate_Temp_Tables (l_return_status,l_status_text);
x_line_tbl(I).STATUS_CODE := QP_PREQ_GRP.G_STATUS_UPDATED;
ELSE --g_temp_table_insert_flag = 'N', performance path
IF G_DEBUG_ENGINE = FND_API.G_TRUE THEN
engine_debug('Calling application inserted into temp tables');
SELECT 1
INTO l_price_flag_indx
FROM qp_npreq_lines_tmp
WHERE PRICE_FLAG IN (G_YES,G_PHASE)
AND ROWNUM=1;
SELECT 1
INTO l_price_flag_indx
FROM qp_int_lines
WHERE PRICE_FLAG IN (G_YES, G_PHASE)
AND ROWNUM=1;
engine_debug('Direct Temp Table Insert Price Flag Yes Only : '||l_price_flag_yes_only);
engine_debug('No Pricing. Returning, call from direct insert into temp tables by calling app');
END IF;---p_control_rec.temp_table_insert_flag = G_NO
IF (G_TEMP_TABLE_INSERT_FLAG = G_YES) THEN
--=======START: Truncate/Populate_Temp_tables() needed by JAVA and PL/SQL engine======
Truncate_Temp_Tables (l_return_status,l_status_text);
select line_id
into G_ORDER_ID
from qp_npreq_lines_tmp
where line_type_code = QP_PREQ_GRP.G_ORDER_LEVEL;
/*+------------------TO INSERT HIERARCHY RECORDS IN ATTRS_TMP Added for TCA ----+*/
INSERT_QUALIFIER_HIERARCHY;
Update_Processing_Order(l_return_status,l_status_text);
engine_debug('After calling update_procss--');
UPDATE /*+ dynamic_sampling(1) */ qp_npreq_line_attrs_tmp lattr
SET value_from = qp_number.number_to_canonical(qp_number.canonical_to_number(lattr.value_from)),
value_to = qp_number.number_to_canonical(qp_number.canonical_to_number(lattr.value_to))
WHERE attribute_type = G_PRICING_TYPE
AND pricing_status_code = G_STATUS_UNCHANGED
AND exists (
SELECT format_type
FROM fnd_flex_value_sets VSET,
qp_segments_b SEGMENTS, qp_prc_contexts_b PCONTEXTS
WHERE vset.flex_value_set_id = segments.user_valueset_id
AND segments.application_id = 661
AND pcontexts.prc_context_type <> 'QUALIFIER'
AND pcontexts.prc_context_code = lattr.context
AND segments.segment_mapping_column = lattr.attribute
AND segments.prc_context_id = pcontexts.prc_context_id
AND vset.format_type = 'N'); --by yangli 03/06/2002 9:30am
UPDATE qp_npreq_line_attrs_tmp lattr
SET value_from = qp_number.number_to_canonical(qp_number.canonical_to_number(lattr.value_from)),
value_to = qp_number.number_to_canonical(qp_number.canonical_to_number(lattr.value_to))
WHERE attribute_type = G_PRICING_TYPE
AND pricing_status_code = G_STATUS_UNCHANGED
AND exists (
SELECT format_type
FROM fnd_flex_value_sets VSET,fnd_descr_flex_column_usages DFLEX
WHERE vset.flex_value_set_id = dflex.flex_value_set_id
AND dflex.application_id = 661
AND dflex.descriptive_flexfield_name = 'QP_ATTR_DEFNS_PRICING'
AND dflex.descriptive_flex_context_code = lattr.context
AND dflex.application_column_name = lattr.attribute
AND vset.format_type = 'N');
engine_debug ('G_TEMP_TABLE_INSERT_FLAG: '||G_TEMP_TABLE_INSERT_FLAG);
IF G_REQUEST_TYPE_CODE = 'ASO' AND G_TEMP_TABLE_INSERT_FLAG='Y' THEN
G_ROUNDING_FLAG := 'Q';
engine_debug('update_rounding_factor...');
UPDATE_ROUNDING_FACTOR (
QP_PREQ_GRP.G_MCURR_INSTALLED_USED,
l_return_status,
l_status_text);
G_INSERT_INTO_FORMULA_TMP := TRUE;
Update_Price_List_Information(I.freeze_override_flag, l_return_status, l_status_text); -- fix bug 2756754
qp_debug_util.tstart('SELECT_PRICE_LIST_LINES','Select Price List Lines(Search Flag on) - SELECT_PRICE_LIST_LINES API');
SELECT_PRICE_LIST_LINES(p_pricing_phase_id => I.pricing_phase_id,
p_freeze_override_flag => I.freeze_override_flag,
x_status_code => l_return_status,
x_status_text => l_status_text,
p_control_rec => p_control_rec); -- vivek\
qp_debug_util.tstop('SELECT_PRICE_LIST_LINES');
select 'x' into l_dummy
from qp_npreq_lines_tmp
where LINE_UOM_CODE <> nvl(PRICED_UOM_CODE, LINE_UOM_CODE)
and (PRICE_FLAG = G_YES
or
PRICE_FLAG = G_PHASE and l_freeze_override_flag = G_YES)
and rownum = 1;
Update_Request_Line_Status(p_control_rec,'SUCCESS',i.freeze_override_flag,l_return_status,l_status_text); --[julin/4708044]
/*OPEN l_chk_deleted_pbh_cur(J.line_index,G_PRICE_LIST_PHASE_ID);
FETCH l_chk_deleted_pbh_cur INTO l_dummy;
IF l_chk_deleted_pbh_cur%FOUND THEN
Delete_Invalid_PBH_Children(J.line_index,G_PRICE_LIST_PHASE_ID);
CLOSE l_chk_deleted_pbh_cur;*/
DELETE_LINES(J.LINE_INDEX,
l_return_status,
l_status_text);
UPDATE qp_npreq_lines_tmp a
SET (price_list_header_id,validated_flag) =
(SELECT /*+ index(b QP_PREQ_LINE_ATTRS_TMP_N2) */ distinct qp_number.canonical_to_number(value_from),validated_flag
FROM qp_npreq_line_attrs_tmp b
WHERE a.line_index = b.line_index
AND context = G_LIST_HEADER_CONTEXT
AND attribute = G_PRICELIST_ATTRIBUTE
AND attribute_type = G_QUALIFIER_TYPE
AND pricing_status_code = G_STATUS_UNCHANGED
AND a.PRICE_LIST_HEADER_ID < 0 )
WHERE a.PRICE_LIST_HEADER_ID < 0;
G_INSERT_INTO_FORMULA_TMP := TRUE;
Update_Distinct_Qualifier_Flag(l_return_status,l_status_text);
qp_debug_util.tstart('SELECT_MODIFIERS','Modifier Selection - SELECT_MODIFIERS API');
SELECT_MODIFIERS(p_pricing_phase_id => I.pricing_phase_id,
p_freeze_override_flag => I.freeze_override_flag,
x_status_code => l_return_status,
x_status_text => l_status_text);
qp_debug_util.tstop('SELECT_MODIFIERS');
Delete_Un_Asked_For_Promotions(J.LINE_INDEX,
I.pricing_phase_id,
I.INCOMPAT_RESOLVE_CODE,
l_return_status,
l_status_text);
DELETE_LINES(J.LINE_INDEX,
l_return_status,
l_status_text,
l_error_status_code,
l_error_status_text);
OPEN l_chk_deleted_pbh_cur(J.line_index,I.pricing_phase_id);
FETCH l_chk_deleted_pbh_cur INTO l_dummy;
IF l_chk_deleted_pbh_cur%FOUND THEN
Delete_Invalid_PBH_Children(J.line_index,I.pricing_phase_id,l_return_status,l_status_text);
CLOSE l_chk_deleted_pbh_cur;
DELETE_LINES(J.LINE_INDEX,
l_return_status,
l_status_text,
l_error_status_code,
l_error_status_text);
DELETE_LINES(J.LINE_INDEX,
l_return_status,
l_status_text);
UPDATE_ROUNDING_FACTOR (
QP_PREQ_GRP.G_MCURR_INSTALLED_USED,
l_return_status,
l_status_text);
QP_Limit_Transactions_PVT.Delete(p_control_rec.pricing_event, l_return_status);
select qp_number.canonical_to_number(value_from) -- 5515203
into v_order_amount
from qp_npreq_line_attrs_tmp
where CONTEXT = G_PRIC_VOLUME_CONTEXT
AND ATTRIBUTE = G_ORDER_AMOUNT_ATTRIBUTE
AND ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND PRICING_STATUS_CODE = G_STATUS_UNCHANGED
and rownum = 1;
UPDATE qp_npreq_lines_tmp
SET UNIT_PRICE = v_order_amount,
PRICED_QUANTITY = 1
WHERE LINE_TYPE_CODE = 'ORDER';
QP_Limit_Transactions_PVT.Delete(p_control_rec.pricing_event, l_return_status);
IF (G_TEMP_TABLE_INSERT_FLAG = G_YES and G_PUBLIC_API_CALL_FLAG = G_NO) THEN
Populate_Output ( l_line_tbl,
l_line_qual,
l_line_attr_tbl,
l_line_detail_tbl,
l_line_detail_qual_tbl,
l_line_detail_attr_tbl,
l_related_lines_tbl);
select value into l_pricing_end_redo
from v$mystat, v$statname
where v$mystat.statistic# = v$statname.statistic#
and v$statname.name = 'redo size';
execute immediate 'select ' || '''' || 'QP_PREQ_GRP: version, start redo, total redo, start time, total time: ' || G_VERSION || ', ' || g_start_redo || ', ' || g_total_redo || ', ' || g_start_time || ', ' || g_total_time || '''' || ' from dual ';
execute immediate 'select ' || '''' || 'QP_PREQ_GRP: version, start redo, total redo, start time, total time: ' || G_VERSION || ', ' || g_start_redo || ', ' || g_total_redo || ', ' || g_start_time || ', ' || g_total_time || '''' || ' from dual ';
SELECT 'QP_PREQ_GRP: version, start redo, total redo, start time, total time: '||G_VERSION ||g_start_redo ||g_total_redo ||g_start_time ||g_total_time INTO l_time_stats FROM DUAL;
execute immediate 'select '||''''|| ' Total Time in QP_PREQ_GRP(in sec) : ' || l_time_difference||' Total redo in QP_PREQ_GRP : '||l_redo_difference||''''||' from dual ';