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 /*+ index(qp_preq_qual_tmp QP_PREQ_QUAL_TMP_N7) */ 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
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 /*+ index(qp_preq_qual_tmp QP_PREQ_QUAL_TMP_N7) */ 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
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 /*+ index(qp_preq_qual_tmp QP_PREQ_QUAL_TMP_N7) */ 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
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 /*+ index(qp_preq_qual_tmp QP_PREQ_QUAL_TMP_N7) */ 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
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 /*+ index(qp_preq_qual_tmp QP_PREQ_QUAL_TMP_N7) */ 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
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 /*+ index(qp_preq_qual_tmp QP_PREQ_QUAL_TMP_N7) */ 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
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 /*+ index(qp_preq_qual_tmp QP_PREQ_QUAL_TMP_N7) */ 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
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 /*+ index(qp_preq_qual_tmp QP_PREQ_QUAL_TMP_N7) */ 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
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 qplh.PRIC_PROD_ATTR_ONLY_FLAG = 'N' -- Pattern changes
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 /*+ index(qp_preq_qual_tmp QP_PREQ_QUAL_TMP_N7) */ 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 /*+ INDEX (qp_pa,QP_PRICING_ATTRIBUTES_N2) */'x' --added hint 8579312 --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) INDEX (c,QP_PRICING_ATTRIBUTES_N2) */ 'x' --added hint 8579312
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
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 qplh.PRIC_PROD_ATTR_ONLY_FLAG = 'N' -- Pattern changes
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 /*+ index(qp_preq_qual_tmp QP_PREQ_QUAL_TMP_N7) */ 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 /*+ INDEX (qp_pa,QP_PRICING_ATTRIBUTES_N2) */'x' --added hint 8579312 --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) INDEX (c,QP_PRICING_ATTRIBUTES_N2) */ 'x' --added hint 8579312
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
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 qplh.PRIC_PROD_ATTR_ONLY_FLAG = 'N' -- Pattern changes
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 /*+ index(qp_preq_qual_tmp QP_PREQ_QUAL_TMP_N7) */ 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 /*+ INDEX (qp_pa,QP_PRICING_ATTRIBUTES_N2) */ 'x' --added hint 8579312 --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) INDEX (c,QP_PRICING_ATTRIBUTES_N2) */ 'x' --added hint 8579312
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
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 qplh.PRIC_PROD_ATTR_ONLY_FLAG = 'N' -- Pattern changes
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 /*+ index(qp_preq_qual_tmp QP_PREQ_QUAL_TMP_N7) */ 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 /*+ INDEX (qp_pa,QP_PRICING_ATTRIBUTES_N2) */ 'x' --added hint 8579312 --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) INDEX (c,QP_PRICING_ATTRIBUTES_N2) */ 'x' --added hint 8579312
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
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 qplh.PRIC_PROD_ATTR_ONLY_FLAG = 'N' -- Pattern changes
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)
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 qplh.PRIC_PROD_ATTR_ONLY_FLAG = 'N' -- Pattern changes
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)
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 qplh.PRIC_PROD_ATTR_ONLY_FLAG = 'N' -- Pattern changes
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)
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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 qplh.PRIC_PROD_ATTR_ONLY_FLAG = 'N' -- Pattern changes
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)
--Begin Bug# 7833575
/*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 (NVL(qph.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qph.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
AND (NVL(qpq.end_date_active,G_MIN_PRICING_DATE) >= g_min_pricing_date
AND NVL(qpq.start_date_active, G_MAX_PRICING_DATE) <= g_max_pricing_date)
--End Bug# 7833575
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_SERVICE_DURATION_TBL.delete ; -- SERVICE PROJECT
G_SERVICE_PERIOD_TBL.delete ; -- SERVICE PROJECT
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_SERVICE_DURATION_TBL_P.delete; -- SERVICE PROJECT
G_SERVICE_PERIOD_TBL_P.delete; -- SERVICE PROJECT
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_SERVICE_DURATION_TBL_B.delete; -- SERVICE PROJECT
G_SERVICE_PERIOD_TBL_B.delete; -- SERVICE PROJECT
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 /*+ index(qp_npreq_ldets_tmp qp_preq_ldets_tmp_n1) */ 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) index(qp_npreq_line_attrs_tmp qp_preq_line_attrs_tmp_n1) */ 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,
p_SERVICE_DURATION IN NUMBER_TYPE, -- SERVICE PROJECT
p_SERVICE_PERIOD IN VARCHAR_TYPE, -- SERVICE PROJECT
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,
SERVICE_DURATION,
SERVICE_PERIOD
)
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)
DECODE(p_LINE_QUANTITY(i),
0,p_ADJUSTED_UNIT_PRICE(i),
p_ADJUSTED_UNIT_PRICE(i)*nvl(p_PRICED_QUANTITY(i),p_LINE_QUANTITY(i))/p_LINE_QUANTITY(i)), --8370238
p_SERVICE_DURATION(i),
p_SERVICE_PERIOD(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,
p_SERVICE_DURATION IN NUMBER_TYPE, -- SERVICE PROJECT
p_SERVICE_PERIOD IN VARCHAR_TYPE, -- SERVICE PROJECT
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)
DECODE(p_LINE_QUANTITY(i),
0,p_ADJUSTED_UNIT_PRICE(i),
p_ADJUSTED_UNIT_PRICE(i)*nvl(p_PRICED_QUANTITY(i),p_LINE_QUANTITY(i))/p_LINE_QUANTITY(i)) --8370238
);
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_SERVICE_DURATION IN NUMBER:=NULL, -- SERVICE PROJECT
p_SERVICE_PERIOD IN VARCHAR2:=NULL, -- SERVICE PROJECT
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,
SERVICE_DURATION, -- SERVICE PROJECT
SERVICE_PERIOD, -- SERVICE PROJECT
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_SERVICE_DURATION, -- SERVICE PROJECT
p_SERVICE_PERIOD, -- SERVICE PROJECT
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_SERVICE_DURATION IN NUMBER_TYPE, -- SERVICE PROJECT
p_SERVICE_PERIOD IN VARCHAR_TYPE, -- SERVICE PROJECT
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,
SERVICE_DURATION, -- SERVICE PROJECT
SERVICE_PERIOD, -- SERVICE PROJECT
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_SERVICE_DURATION(i), -- SERVICE PROJECT
p_SERVICE_PERIOD(i), -- SERVICE PROJECT
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_SERVICE_DURATION IN NUMBER_TYPE, -- SERVICE PROJECT
p_SERVICE_PERIOD IN VARCHAR_TYPE, -- SERVICE PROJECT
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,
SERVICE_DURATION, -- SERVICE PROJECT
SERVICE_PERIOD, -- SERVICE PROJECT
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_SERVICE_DURATION(i), -- SERVICE PROJECT
p_SERVICE_PERIOD(i), -- SERVICE PROJECT
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_SERVICE_DURATION IN NUMBER_TYPE, -- SERVICE PROJECT
p_SERVICE_PERIOD IN VARCHAR_TYPE, -- SERVICE PROJECT
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,
SERVICE_DURATION, -- SERVICE PROJECT
SERVICE_PERIOD, -- SERVICE PROJECT
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_SERVICE_DURATION(i), -- SERVICE PROJECT
p_SERVICE_PERIOD(i), -- SERVICE PROJECT
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
G_SERVICE_DURATION_DEF_TBL.delete; -- service project
G_SERVICE_PERIOD_DEF_TBL.delete; -- service project
|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');
SELECT 1
INTO l_lin_qty_exists
FROM dual
WHERE EXISTS (SELECT 1
FROM qp_npreq_line_attrs_tmp
WHERE 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 ('After select statment ');
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_STATUS_TEXT,
PRICING_ATTR_FLAG
)
VALUES (l_l_line_index_tbl(j),
G_LINE_LEVEL,
G_PRICING_TYPE,
G_PRIC_VOLUME_CONTEXT,
G_QUANTITY_ATTRIBUTE,
qp_number.number_to_canonical(nvl(nvl(l_l_priced_quantity_tbl(j),l_l_line_quantity_tbl(j)),0)),
G_NO,
G_LIST_NOT_APPLIED,
G_STATUS_UNCHANGED,
'Unchanged',
G_PRICING_YES
);
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';
qp_debug_util.tstart('UPDATE_DISTINCT_QUALIFIER_FLAG','Procedure 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) INDEX(b QP_PREQ_LINE_ATTRS_TMP_N6) */ min(rowid) --bug 14464004
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); */
qp_debug_util.tstop('UPDATE_DISTINCT_QUALIFIER_FLAG');
qp_debug_util.tstop('UPDATE_DISTINCT_QUALIFIER_FLAG');
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,
p_SERVICE_DURATION => G_SERVICE_DURATION_DEF_TBL, -- SERVICE PROJECT
p_SERVICE_PERIOD => G_SERVICE_PERIOD_DEF_TBL, -- SERVICE PROJECT
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_SERVICE_DURATION => G_SERVICE_DURATION_TBL, -- SERVICE PROJECT
p_SERVICE_PERIOD => G_SERVICE_PERIOD_TBL, -- SERVICE PROJECT
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) index(QPLAT_PRICING QP_PREQ_LINE_ATTRS_TMP_N3) */ --bug8359591
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.SERVICE_DURATION, -- service project
b.SERVICE_PERIOD, -- service project
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';
qp_debug_util.tstart('UPDATE_REQUEST_LINE_STATUS','Procedure 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));
qp_debug_util.tstop('UPDATE_REQUEST_LINE_STATUS');
qp_debug_util.tstop('UPDATE_REQUEST_LINE_STATUS');
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.service_duration, -- service project
qpll.service_period, -- service project
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.service_duration, -- service project
qpll.service_period, -- service project
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,
SERVICE_DURATION, -- service project
SERVICE_PERIOD, -- service project
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_service_duration_tbl(i), -- service project
l_h_service_period_tbl(i), -- service project
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 /*+ index(a qp_npreq_ldets_tmp_N2) */ --bug 9362867
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 /*+ ORDERED index(a QP_QUALIFIERS_N1) */ COUNT(*) NO_OF_QUALIFIERS_IN_GRP --bug 12867791
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 /*+ index(QP_PREQ_LINE_ATTRS_TMP QP_PREQ_LINE_ATTRS_TMP_N10) */ 'x' --9679930
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 /*+ index(qp_npreq_ldets_tmp QP_PREQ_LDETS_TMP_U1) */ 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 /*+ index(a QP_QUALIFIERS_N7) */ 'x' --bug#11924681
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 --9443496
OR
((QPLINES.VALIDATED_FLAG = G_NO AND --9443496
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 /*+ INDEX(qp_npreq_ldets_tmp QP_PREQ_LDETS_TMP_N2) */ 'X' --bug 14464004
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';
qp_debug_util.tstart('QP_NPREQ_LDETS_TMP','Inserting into ldets QP_NPREQ_LDETS_TMP');
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 */
);
qp_debug_util.tstart('INSERT_PRICE_LIST_ATTRS','Inserting into lin attrs INSERT_PRICE_LIST_ATTRS');
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);
qp_debug_util.tstop('INSERT_PRICE_LIST_ATTRS');
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)
index(qplat_prod qp_preq_line_attrs_tmp_n1) index(QPLINES QP_PREQ_LINES_TMP_N2) l_list_cur */ -- 9362867
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.SERVICE_DURATION, -- service project
QPL.SERVICE_PERIOD, -- service project
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.SERVICE_DURATION, -- service project
QPL.SERVICE_PERIOD, -- service project
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.SERVICE_DURATION, -- service project
QPL.SERVICE_PERIOD, -- service project
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.SERVICE_DURATION, -- service project
QPL.SERVICE_PERIOD, -- service project
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/*+ INDEX(qp_npreq_ldets_tmp QP_PREQ_LDETS_TMP_N2) */ 'X' --bug 14464004
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 );
qp_debug_util.tstart('INSERT_LDETS','Inserting the ldets INSERT_LDETS');
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_SERVICE_DURATION => K.SERVICE_DURATION, -- service project
P_SERVICE_PERIOD => K.SERVICE_PERIOD, -- service project
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);
qp_debug_util.tstop('INSERT_LDETS');
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 );
qp_debug_util.tstart('INSERT_LDETS','Inserting the ldets INSERT_LDETS');
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_SERVICE_DURATION => K.SERVICE_DURATION, -- service project
P_SERVICE_PERIOD => K.SERVICE_PERIOD, -- service project
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);
qp_debug_util.tstop('INSERT_LDETS');
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';
qp_debug_util.tstart('INSERT_LINE_ATTRS2','Inserting the line attrs INSERT_LINE_ATTRS2');
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);
qp_debug_util.tstop('INSERT_LINE_ATTRS2');
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';
qp_debug_util.tstart('INSERT_LDETS_PRICE_LIST_MULT/NON_MULTI','Inserting INSERT_LDETS_PRICE_LIST_MULT/NON_MULTI');
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
);
qp_debug_util.tstop('INSERT_LDETS_PRICE_LIST_MULT/NON_MULTI');
qp_debug_util.tstart('INSERT_PRICE_LIST_ATTRS','Inserting INSERT_PRICE_LIST_ATTRS');
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);
qp_debug_util.tstop('INSERT_PRICE_LIST_ATTRS');
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';
qp_debug_util.tstart('INSERT_LDETS_PRICE_LIST_MULT_NON_MULTI','Inserting ldets INSERT_LDETS_PRICE_LIST_MULT_NON_MULTI');
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
);
qp_debug_util.tstop('INSERT_LDETS_PRICE_LIST_MULT_NON_MULTI');
qp_debug_util.tstart('INSERT_PRICE_LIST_ATTRS','Inserting line attrs INSERT_PRICE_LIST_ATTRS');
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);
qp_debug_util.tstop('INSERT_PRICE_LIST_ATTRS');
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
/*+ ORDERED index(atrgrps QP_ATTRIBUTE_GROUPS_N3)
index(qplines QP_PREQ_LINES_TMP_U1)
index(qprs qp_pte_source_systems_u2)
L_SEC_LST_HDR_P1_QLFY_SEC_Y */
atrgrps.list_header_id,
atrgrps.list_line_id list_line_id,
qplines.line_index line_index,
atrgrps.pattern_id matched_pattrn_id,
G_PRICE_LIST_PHASE_ID,
atrgrps.hash_key matched_hash_key,
G_STAGE_CACHE_SEC_PL_HDR_SRCH stage,
G_STATUS_UNCHANGED,
atrgrps.source_system_code,
atrgrps.header_quals_exist_flag,
atrgrps.grouping_no grouping_no,
atrgrps.eq_flag,
QPLINES.VALIDATED_FLAG, -- VALIDATED_FLAG
G_LINE_LEVEL,--MODIFIER_LEVEL_CODE,
atrgrps.other_oprt_count,
atrgrps.null_other_oprt_count,
atrgrps.LIST_TYPE_CODE,
atrgrps.ASK_FOR_FLAG,
atrgrps.HEADER_LIMIT_EXISTS,
atrgrps.LINE_LIMIT_EXISTS,
NULL, --QCDT.CURRENCY_DETAIL_ID,
NULL, --QCDT.CURRENCY_HEADER_ID,
NULL, --QCDT.SELLING_ROUNDING_FACTOR,
atrgrps.CURRENCY_CODE BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
qpq.qualifier_precedence,
atrgrps.descendents_quals_exist
FROM
qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp,
QP_QUALIFIERS qpq,
qp_secu_attr_groups_v atrgrps,
--qp_attribute_groups atrgrps,
--QP_PRICE_REQ_SOURCES_V qprs /* yangli */
qp_pte_source_systems qprs
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' --3917802
AND atrgrps.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPQ.LIST_HEADER_ID = atrgrps.LIST_HEADER_ID
AND atrgrps.list_line_id = -1 -- Filter
AND atrgrps.pte_code = G_PTE_CODE
-- AND qppattmp.pattern_id = atrgrps.pattern_id -- Match --13035945 13522077
-- AND qppattmp.hash_key = atrgrps.hash_key -- Match --13035945 13522077
AND (QPLINES.VALIDATED_FLAG = G_YES OR (QPLINES.VALIDATED_FLAG = G_NO
AND qppattmp.pattern_id = atrgrps.pattern_id -- Match
AND qppattmp.hash_key = atrgrps.hash_key -- Match
)
)--13035945 13522077
AND qppattmp.line_index = qplines.line_index --Join
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 atrgrps.ACTIVE_FLAG = G_YES
--AND atrgrps.source_system_code = qprs.source_system_code --join
--AND qprs.request_type_code = g_request_type_code
AND qprs.APPLICATION_SHORT_NAME = atrgrps.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND atrgrps.CURRENCY_CODE = QPLINES.CURRENCY_CODE
-- AND QPLINES.VALIDATED_FLAG = G_NO --13035945 13522077
AND (QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES
OR
QPLINES.QUALIFIERS_EXIST_FLAG = G_NO
)
AND QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(atrgrps.START_DATE_ACTIVE_H),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(atrgrps.END_DATE_ACTIVE_H),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(atrgrps.START_DATE_ACTIVE_Q),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(atrgrps.END_DATE_ACTIVE_Q),QPLINES.PRICING_EFFECTIVE_DATE)
ORDER BY 1,2;
SELECT
/*+ ORDERED index(qpl QP_LIST_LINES_N16)
index(qplines QP_PREQ_LINES_TMP_U1)
index(qppattmp QP_NPREQ_LINE_PATRNS_T_N2)
index(qppqual QP_PREQ_PATRN_QUAL_T_N2)
L_SEC_LST_LIN_P1_QLFY_SEC_Y */
DISTINCT qpl.list_header_id,
qpl.list_line_id list_line_id,
qplines.line_index line_index,
qpl.pattern_id matched_pattrn_id,
G_PRICE_LIST_PHASE_ID,
qpl.hash_key matched_hash_key,
G_STAGE_CACHE_SEC_PL_LIN_SRCH stage,
G_STATUS_UNCHANGED,
qppqual.source_system_code,
decode(qpl.QUALIFICATION_IND,6,'Y',22,'Y',2,'Y','N'),--qpq.header_quals_exist_flag,
-1 grouping_no,
qpl.eq_flag, ---to be discusseed
QPLINES.VALIDATED_FLAG, -- VALIDATED_FLAG
G_LINE_LEVEL,--MODIFIER_LEVEL_CODE,
0 other_oprt_count,
qpl.null_other_oprt_count,
qppqual.list_type_code,
qppqual.ask_for_flag,
decode(qppqual.HEADER_LIMIT_EXISTS,'Y','Y',decode(qpl.limit_exists_flag,'Y','Y','N')), -- HEADER_LIMIT_EXISTS
qpl.limit_exists_flag,
qpl.BREAK_UOM_CODE,
qpl.BREAK_UOM_CONTEXT,
qpl.BREAK_UOM_ATTRIBUTE,
QPLINES.CURRENCY_CODE ORDER_CURRENCY,
qplines.pricing_effective_date,
qppqual.qualifier_precedence,
'N' descendents_quals_exist,
qpl.PRICE_BREAK_TYPE_CODE
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp,
qp_preq_patrn_qual_tmp qppqual,
qp_list_lines qpl
WHERE qppattmp.LINE_INDEX = qplines.LINE_INDEX
AND qppqual.LINE_INDEX = qplines.LINE_INDEX
AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND qpl.pattern_id = qppattmp.pattern_id
AND qpl.hash_key = qppattmp.hash_key
AND QPL.LIST_HEADER_ID = qppqual.LIST_HEADER_ID
AND qppqual.stage = G_STAGE_CACHE_SEC_PL_HDR_SRCH
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 = QPLINES.LINE_TYPE_CODE
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.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 1,2;
SELECT
/*+ ORDERED index(qcdt QP_CURRENCY_DETAILS_N2)
index(atrgrps QP_ATTRIBUTE_GROUPS_N3)
index(qplines QP_PREQ_LINES_TMP_U1)
index(qprs qp_pte_source_systems_u2)
L_SEC_LST_HDR_P1_QLFY_Y_CURR */
DISTINCT atrgrps.list_header_id,
atrgrps.list_line_id list_line_id,
qplines.line_index line_index,
atrgrps.pattern_id matched_pattrn_id,
G_PRICE_LIST_PHASE_ID,
atrgrps.hash_key matched_hash_key,
G_STAGE_CACHE_SEC_PL_HDR_SRCH stage,
G_STATUS_UNCHANGED,
atrgrps.source_system_code,
atrgrps.header_quals_exist_flag,
atrgrps.grouping_no grouping_no,
atrgrps.eq_flag,
QPLINES.VALIDATED_FLAG, -- VALIDATED_FLAG
G_LINE_LEVEL,--MODIFIER_LEVEL_CODE,
atrgrps.other_oprt_count,
atrgrps.null_other_oprt_count,
atrgrps.LIST_TYPE_CODE,
atrgrps.ASK_FOR_FLAG,
atrgrps.HEADER_LIMIT_EXISTS,
atrgrps.LINE_LIMIT_EXISTS,
QCDT.CURRENCY_DETAIL_ID,
QCDT.CURRENCY_HEADER_ID,
QCDT.SELLING_ROUNDING_FACTOR,
atrgrps.CURRENCY_CODE BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
qpq.qualifier_precedence,
atrgrps.descendents_quals_exist
FROM
qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp,
QP_QUALIFIERS qpq,
qp_secu_attr_groups_v atrgrps,
--qp_attribute_groups atrgrps,
--QP_PRICE_REQ_SOURCES_V qprs, /* yangli */
qp_pte_source_systems qprs,
qp_currency_details qcdt
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' --3917802
AND atrgrps.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND QPQ.LIST_HEADER_ID = atrgrps.LIST_HEADER_ID
AND atrgrps.list_line_id = -1 -- Filter
AND atrgrps.pte_code = G_PTE_CODE
-- AND qppattmp.pattern_id = atrgrps.pattern_id -- Match --13035945 13522077
-- AND qppattmp.hash_key = atrgrps.hash_key -- Match --13035945 13522077
AND (QPLINES.VALIDATED_FLAG = G_YES OR (QPLINES.VALIDATED_FLAG = G_NO
AND qppattmp.pattern_id = atrgrps.pattern_id -- Match
AND qppattmp.hash_key = atrgrps.hash_key -- Match
)
) --13035945 13522077
AND qppattmp.line_index = qplines.line_index --Join
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 atrgrps.ACTIVE_FLAG = G_YES
--AND atrgrps.source_system_code = qprs.source_system_code --join
--AND qprs.request_type_code = g_request_type_code
AND qprs.APPLICATION_SHORT_NAME = atrgrps.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND atrgrps.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 /*+ use_nl(qcdt1) LEADING(qcdt1) index(qcdt1 QP_CURRENCY_DETAILS_N2) */ 'x'
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.currency_detail_id =
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3
where qcdt3.to_currency_code = qcdt.to_currency_code
and qcdt3.currency_header_id = qcdt.currency_header_id
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QCDT3.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QCDT3.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
and qcdt3.precedence =
(select /*+ use_nl(qcdt2) LEADING(qcdt2) index(qcdt2 QP_CURRENCY_DETAILS_N2) */ min(qcdt2.precedence)
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 QPLINES.VALIDATED_FLAG = G_NO --13035945 13522077
AND (QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES
OR
QPLINES.QUALIFIERS_EXIST_FLAG = G_NO
)
AND QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(atrgrps.START_DATE_ACTIVE_H),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(atrgrps.END_DATE_ACTIVE_H),QPLINES.PRICING_EFFECTIVE_DATE)
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(atrgrps.START_DATE_ACTIVE_Q),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(atrgrps.END_DATE_ACTIVE_Q),QPLINES.PRICING_EFFECTIVE_DATE)
ORDER BY 1,2;
SELECT
/*+ ORDERED index(qpl QP_LIST_LINES_N16)
index(qplines QP_PREQ_LINES_TMP_U1)
index(qppattmp QP_NPREQ_LINE_PATRNS_T_N2)
index(qppqual QP_PREQ_PATRN_QUAL_T_N2)
L_SEC_LST_LIN_P1_QLFY_Y_CURR */
DISTINCT qpl.list_header_id,
qpl.list_line_id list_line_id,
qplines.line_index line_index,
qpl.pattern_id matched_pattrn_id,
G_PRICE_LIST_PHASE_ID,
qpl.hash_key matched_hash_key,
G_STAGE_CACHE_SEC_PL_LIN_SRCH stage,
G_STATUS_UNCHANGED,
qppqual.source_system_code,
decode(qpl.QUALIFICATION_IND,6,'Y',22,'Y',2,'Y','N'),--qpq.header_quals_exist_flag,
-1 grouping_no,
qpl.eq_flag, ---to be discusseed
QPLINES.VALIDATED_FLAG, -- VALIDATED_FLAG
G_LINE_LEVEL,--MODIFIER_LEVEL_CODE,
0 other_oprt_count,
qpl.null_other_oprt_count,
qppqual.list_type_code,
qppqual.ask_for_flag,
decode(qppqual.HEADER_LIMIT_EXISTS,'Y','Y',decode(qpl.limit_exists_flag,'Y','Y','N')), -- HEADER_LIMIT_EXISTS
qpl.limit_exists_flag,
qpl.BREAK_UOM_CODE,
qpl.BREAK_UOM_CONTEXT,
qpl.BREAK_UOM_ATTRIBUTE,
QPLINES.CURRENCY_CODE ORDER_CURRENCY,
qplines.pricing_effective_date,
qppqual.CURRENCY_DETAIL_ID,
qppqual.CURRENCY_HEADER_ID,
qppqual.SELLING_ROUNDING_FACTOR,
qppqual.BASE_CURRENCY_CODE,
qppqual.qualifier_precedence,
'N' descendents_quals_exist,
qpl.PRICE_BREAK_TYPE_CODE
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp,
qp_preq_patrn_qual_tmp qppqual,
qp_list_lines qpl
WHERE qppattmp.LINE_INDEX = qplines.LINE_INDEX
AND qppqual.LINE_INDEX = qplines.LINE_INDEX
AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND qpl.pattern_id = qppattmp.pattern_id
AND qpl.hash_key = qppattmp.hash_key
AND QPL.LIST_HEADER_ID = qppqual.LIST_HEADER_ID
AND qppqual.stage = G_STAGE_CACHE_SEC_PL_HDR_SRCH
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 = QPLINES.LINE_TYPE_CODE
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.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 1,2;
SELECT
/*+ ORDERED index(qplines QP_PREQ_LINES_TMP_U1)
index(qcdt QP_CURRENCY_DETAILS_N2)
index(qprs qp_pte_source_systems_u2)
L_SEC_LST_HDR_P1_QLFY_N_CURR */
DISTINCT qph.list_header_id,
-1 list_line_id,
qplines.line_index line_index,
-2 matched_pattrn_id,
G_PRICE_LIST_PHASE_ID,
NULL matched_hash_key,
G_STAGE_CACHE_SEC_PL_HDR_SRCH stage,
G_STATUS_UNCHANGED,
qph.source_system_code,
'N',--qpq.header_quals_exist_flag,
-1 grouping_no,
'Y' eq_flag,
QPLINES.VALIDATED_FLAG, -- VALIDATED_FLAG
G_LINE_LEVEL,--MODIFIER_LEVEL_CODE,
0 other_oprt_count,
0 null_other_oprt_count,
qph.LIST_TYPE_CODE,
qph.ASK_FOR_FLAG,
qph.LIMIT_EXISTS_FLAG,
NULL LINE_LIMIT_EXISTS,
QCDT.CURRENCY_DETAIL_ID,
QCDT.CURRENCY_HEADER_ID,
QCDT.SELLING_ROUNDING_FACTOR,
qph.CURRENCY_CODE BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
qpq.qualifier_precedence,
'N' descendents_quals_exist
FROM
qp_npreq_lines_tmp qplines,
QP_QUALIFIERS qpq,
qp_list_headers_b qph,
qp_pte_source_systems qprs,
--QP_PRICE_REQ_SOURCES_V qprs, /* yangli */
qp_currency_details qcdt
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' --3917802
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 qph.ACTIVE_FLAG = G_YES
AND qph.pte_code = G_PTE_CODE
--AND qph.source_system_code = qprs.source_system_code --join
--AND qprs.request_type_code = g_request_type_code
AND qprs.APPLICATION_SHORT_NAME = qph.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
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 /*+ use_nl(qcdt1) LEADING(qcdt1) index(qcdt1 QP_CURRENCY_DETAILS_N2) */ 'x'
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.currency_detail_id =
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3
where qcdt3.to_currency_code = qcdt.to_currency_code
and qcdt3.currency_header_id = qcdt.currency_header_id
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QCDT3.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QCDT3.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
and qcdt3.precedence =
(select /*+ use_nl(qcdt2) LEADING(qcdt2) index(qcdt2 QP_CURRENCY_DETAILS_N2) */ min(qcdt2.precedence)
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 (QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES
OR
QPLINES.QUALIFIERS_EXIST_FLAG = 'N')
AND QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
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)
ORDER BY 1,2;
SELECT
/*+ ORDERED index(qpl QP_LIST_LINES_N16)
index(qplines QP_PREQ_LINES_TMP_U1)
index(qppattmp QP_NPREQ_LINE_PATRNS_T_N2)
index(qppqual QP_PREQ_PATRN_QUAL_T_N2)
L_SEC_LST_LIN_P1_QLFY_N_CURR */
DISTINCT qpl.list_header_id,
qpl.list_line_id list_line_id,
qplines.line_index line_index,
qpl.pattern_id matched_pattrn_id,
G_PRICE_LIST_PHASE_ID,
qpl.hash_key matched_hash_key,
G_STAGE_CACHE_SEC_PL_LIN_SRCH stage,
G_STATUS_UNCHANGED,
qppqual.source_system_code,
decode(qpl.QUALIFICATION_IND,6,'Y',22,'Y',2,'Y','N'),--qpq.header_quals_exist_flag,
-1 grouping_no,
qpl.eq_flag, ---to be discusseed
QPLINES.VALIDATED_FLAG, -- VALIDATED_FLAG
G_LINE_LEVEL,--MODIFIER_LEVEL_CODE,
0 other_oprt_count,
qpl.null_other_oprt_count,
qppqual.list_type_code,
qppqual.ask_for_flag,
decode(qppqual.HEADER_LIMIT_EXISTS,'Y','Y',decode(qpl.limit_exists_flag,'Y','Y','N')), -- HEADER_LIMIT_EXISTS
qpl.limit_exists_flag,
qpl.BREAK_UOM_CODE,
qpl.BREAK_UOM_CONTEXT,
qpl.BREAK_UOM_ATTRIBUTE,
QPLINES.CURRENCY_CODE ORDER_CURRENCY,
qplines.pricing_effective_date,
qppqual.CURRENCY_DETAIL_ID,
qppqual.CURRENCY_HEADER_ID,
qppqual.SELLING_ROUNDING_FACTOR,
qppqual.BASE_CURRENCY_CODE,
qppqual.qualifier_precedence,
'N' descendents_quals_exist,
qpl.PRICE_BREAK_TYPE_CODE
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp,
qp_preq_patrn_qual_tmp qppqual,
qp_list_lines qpl
WHERE qppattmp.LINE_INDEX = qplines.LINE_INDEX
AND qppqual.LINE_INDEX = qplines.LINE_INDEX
AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND qpl.pattern_id = qppattmp.pattern_id
AND qpl.hash_key = qppattmp.hash_key
AND QPL.LIST_HEADER_ID = qppqual.LIST_HEADER_ID
AND qppqual.stage = G_STAGE_CACHE_SEC_PL_HDR_SRCH
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 = QPLINES.LINE_TYPE_CODE
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.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 1,2;
SELECT
/*+ ORDERED index(qplines QP_PREQ_LINES_TMP_U1)
index(qprs qp_pte_source_systems_u2)
L_SEC_LST_HDR_P1_QLFY_SEC_N */
DISTINCT qph.list_header_id,
-1 list_line_id,
qplines.line_index line_index,
NULL matched_pattrn_id,
G_PRICE_LIST_PHASE_ID,
NULL matched_hash_key,
G_STAGE_CACHE_SEC_PL_HDR_SRCH stage,
G_STATUS_UNCHANGED,
qph.source_system_code,
NULL,--qpq.header_quals_exist_flag,
-1 grouping_no,
'Y' eq_flag,
QPLINES.VALIDATED_FLAG, -- VALIDATED_FLAG
G_LINE_LEVEL,--MODIFIER_LEVEL_CODE,
0 other_oprt_count,
0 null_other_oprt_count,
qph.LIST_TYPE_CODE,
qph.ASK_FOR_FLAG,
qph.LIMIT_EXISTS_FLAG,
NULL LINE_LIMIT_EXISTS,
NULL, --QCDT.CURRENCY_DETAIL_ID,
NULL, --QCDT.CURRENCY_HEADER_ID,
NULL, --QCDT.SELLING_ROUNDING_FACTOR,
qph.CURRENCY_CODE BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
qpq.qualifier_precedence,
'N' descendents_quals_exist
FROM
qp_npreq_lines_tmp qplines,
QP_QUALIFIERS qpq,
qp_list_headers_b qph,
qp_pte_source_systems 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' --3917802
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 qph.ACTIVE_FLAG = G_YES
AND qph.pte_code = G_PTE_CODE
--AND qph.source_system_code = qprs.source_system_code --join
--AND qprs.request_type_code = g_request_type_code
AND qprs.APPLICATION_SHORT_NAME = qph.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND qph.CURRENCY_CODE = QPLINES.CURRENCY_CODE
AND (QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES
OR QPLINES.QUALIFIERS_EXIST_FLAG = 'N')
AND QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
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)
ORDER BY 1,2;
SELECT
/*+ ORDERED index(qpl QP_LIST_LINES_N16)
index(qplines QP_PREQ_LINES_TMP_U1)
index(qppattmp QP_NPREQ_LINE_PATRNS_T_N2)
index(qppqual QP_PREQ_PATRN_QUAL_T_N2)
L_SEC_LST_LIN_P1_QLFY_SEC_N */
DISTINCT qpl.list_header_id,
qpl.list_line_id list_line_id,
qplines.line_index line_index,
qpl.pattern_id matched_pattrn_id,
G_PRICE_LIST_PHASE_ID,
qpl.hash_key matched_hash_key,
G_STAGE_CACHE_SEC_PL_LIN_SRCH stage,
G_STATUS_UNCHANGED,
qppqual.source_system_code,
decode(qpl.QUALIFICATION_IND,6,'Y',22,'Y',2,'Y','N'),--qpq.header_quals_exist_flag,
-1 grouping_no,
qpl.eq_flag, ---to be discusseed
QPLINES.VALIDATED_FLAG, -- VALIDATED_FLAG
G_LINE_LEVEL,--MODIFIER_LEVEL_CODE,
0 other_oprt_count,
qpl.null_other_oprt_count,
qppqual.list_type_code,
qppqual.ask_for_flag,
decode(qppqual.HEADER_LIMIT_EXISTS,'Y','Y',decode(qpl.limit_exists_flag,'Y','Y','N')), -- HEADER_LIMIT_EXISTS
qpl.limit_exists_flag,
qpl.BREAK_UOM_CODE,
qpl.BREAK_UOM_CONTEXT,
qpl.BREAK_UOM_ATTRIBUTE,
QPLINES.CURRENCY_CODE ORDER_CURRENCY,
qplines.pricing_effective_date,
qppqual.qualifier_precedence,
'N' descendents_quals_exist,
qpl.PRICE_BREAK_TYPE_CODE
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp,
qp_preq_patrn_qual_tmp qppqual,
qp_list_lines qpl
WHERE qppattmp.LINE_INDEX = qplines.LINE_INDEX
AND qppqual.LINE_INDEX = qplines.LINE_INDEX
AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
AND qpl.pattern_id = qppattmp.pattern_id
AND qpl.hash_key = qppattmp.hash_key
AND QPL.LIST_HEADER_ID = qppqual.LIST_HEADER_ID
AND qppqual.stage = G_STAGE_CACHE_SEC_PL_HDR_SRCH
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 = QPLINES.LINE_TYPE_CODE
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.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 1,2;
SELECT /*+ ORDERED index(qplines QP_PREQ_LINES_TMP_U1)
index(QPQ QP_QUALIFIERS_N4)
index(qpl QP_LIST_LINES_N17)
index(qppattmp1 QP_NPREQ_LINE_PATRNS_T_N2)
index(qpatrgrp QP_ATTRIBUTE_GROUPS_N1)
index(qprs qp_pte_source_systems_u2)
L_SEC_SRCH_BOTH_P2_QLFY_N */
DISTINCT
qpl.LIST_HEADER_ID,
qpl.LIST_LINE_ID,
qplines.LINE_INDEX,
qpl.pattern_id QPL_MATCHED_PATTRN_ID,
NULL AG_MATCHED_PATTRN_ID,
G_PRICE_LIST_PHASE_ID,
qpl.HASH_KEY QPL_MATCHED_HASH_KEY,
NULL AG_MATCHED_HASH_KEY,
G_STAGE_CACHE_SEC_PL_LIN_SRCH2 STAGE,
G_STATUS_UNCHANGED PRICING_STATUS_CODE,
qpatrgrp.source_system_code,
--decode(bitand(qpl.qualification_ind,2),2,'Y','N') HEADER_QUALS_EXIST_FLAG,
--DECODE(qpatrgrp.EQ_FLAG,'N','Y','N') HEADER_QUALS_EXIST_FLAG,
DECODE(qpatrgrp.EQ_FLAG,'N','Y',DECODE(qpatrgrp.descendents_quals_exist,'Y','Y','N')) HEADER_QUALS_EXIST_FLAG,
-1 qpl_grpng_num,
qpatrgrp.GROUPING_NO ag_grpng_num,
qpl.EQ_FLAG QPL_EQFLAG,
qpatrgrp.EQ_FLAG ATRGRP_EQFLAG,
qplines.VALIDATED_FLAG,
qpl.MODIFIER_LEVEL_CODE,
qpl.null_other_oprt_count qpl_other_oprt_cnt,
qpatrgrp.other_oprt_count ag_other_oprt_cnt,
qpatrgrp.null_other_oprt_count ag_null_othr_oprt_cnt,
qpatrgrp.LIST_TYPE_CODE,
qpatrgrp.ASK_FOR_FLAG,
qpatrgrp.HEADER_LIMIT_EXISTS,
qpatrgrp.LINE_LIMIT_EXISTS,
NULL CURRENCY_DETAIL_ID,
NULL CURRENCY_HEADER_ID,
NULL SELLING_ROUNDING_FACTOR,
qpatrgrp.CURRENCY_CODE BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
qpl.BREAK_UOM_CODE,
qpl.BREAK_UOM_CONTEXT,
qpl.BREAK_UOM_ATTRIBUTE,
QPLINES.CURRENCY_CODE ORDER_CURRENCY,
qpq.qualifier_precedence,
'N' descendents_quals_exist,
qpl.PRICE_BREAK_TYPE_CODE
FROM qp_npreq_lines_tmp qplines,
QP_QUALIFIERS QPQ,
qp_npreq_line_patrns_tmp qppattmp1,
qp_list_lines qpl,
qp_secu_attr_groups_v qpatrgrp,
--qp_attribute_groups qpatrgrp,
qp_pte_source_systems qprs
--qp_price_req_sources_v qprs
WHERE qppattmp1.line_index = qplines.line_index
AND 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' --3917802
AND QPQ.LIST_HEADER_ID = QPL.LIST_HEADER_ID
AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_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 QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND (QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES
OR
QPLINES.QUALIFIERS_EXIST_FLAG = G_NO
)
AND qppattmp1.pattern_id = qpl.pattern_id
AND qppattmp1.hash_key = qpl.hash_key
AND qpl.pte_code = G_PTE_CODE
AND QPQ.ACTIVE_FLAG = G_YES
AND QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND qpl.pricing_phase_id = G_PRICE_LIST_PHASE_ID
AND nvl(qplines.pricing_effective_date, TRUNC(sysdate))
BETWEEN 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 qpatrgrp.list_header_id = qpl.list_header_id
AND qpatrgrp.pricing_phase_id = G_PRICE_LIST_PHASE_ID
AND qpatrgrp.active_flag = G_YES
AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = qpatrgrp.orig_org_id) OR -- begin security
(nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(qpatrgrp.global_flag,'Y') = 'Y') OR
nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND nvl(qplines.pricing_effective_date, TRUNC(sysdate))
BETWEEN nvl(qpatrgrp.START_DATE_ACTIVE_H, nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
AND nvl(qpatrgrp.END_DATE_ACTIVE_H, nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
AND nvl(qplines.pricing_effective_date, TRUNC(sysdate))
BETWEEN NVL(TRUNC(qpatrgrp.START_DATE_ACTIVE_Q),nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
AND NVL(TRUNC(qpatrgrp.END_DATE_ACTIVE_Q),nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
--AND qprs.source_system_code = qpatrgrp.source_system_code
--AND qprs.request_type_code = qplines.request_type_code -- check it
AND qprs.APPLICATION_SHORT_NAME = qpatrgrp.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND qpatrgrp.currency_code = qplines.currency_code
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0);
SELECT /*+ ORDERED index(qplines QP_PREQ_LINES_TMP_U1)
index(QPQ QP_QUALIFIERS_N4)
index(qpl QP_LIST_LINES_N16)
index(qppattmp1 QP_NPREQ_LINE_PATRNS_T_N2)
index(qpatrgrp QP_ATTRIBUTE_GROUPS_N1)
index(qcdt QP_CURRENCY_DETAILS_N2)
index(qprs qp_pte_source_systems_u2)
L_SEC_SRCH_BOTH_P2_QLFY_N_CURR */
DISTINCT
qpl.LIST_HEADER_ID,
qpl.LIST_LINE_ID,
qplines.LINE_INDEX,
qpl.pattern_id QPL_MATCHED_PATTRN_ID,
NULL AG_MATCHED_PATTRN_ID,
G_PRICE_LIST_PHASE_ID,
qpl.HASH_KEY QPL_MATCHED_HASH_KEY,
NULL AG_MATCHED_HASH_KEY,
G_STAGE_CACHE_SEC_PL_LIN_SRCH2 STAGE,
G_STATUS_UNCHANGED PRICING_STATUS_CODE,
qpatrgrp.source_system_code,
--decode(bitand(qpl.qualification_ind,2),2,'Y','N') HEADER_QUALS_EXIST_FLAG,
--DECODE(qpatrgrp.EQ_FLAG,'N','Y','N') HEADER_QUALS_EXIST_FLAG,
DECODE(qpatrgrp.EQ_FLAG,'N','Y',DECODE(qpatrgrp.descendents_quals_exist,'Y','Y','N')) HEADER_QUALS_EXIST_FLAG,
-1 qpl_grpng_num,
qpatrgrp.GROUPING_NO ag_grpng_num,
qpl.EQ_FLAG QPL_EQFLAG,
qpatrgrp.EQ_FLAG ATRGRP_EQFLAG,
qplines.VALIDATED_FLAG,
qpl.MODIFIER_LEVEL_CODE,
qpl.null_other_oprt_count qpl_other_oprt_cnt,
qpatrgrp.other_oprt_count ag_other_oprt_cnt,
qpatrgrp.null_other_oprt_count ag_null_othr_oprt_cnt,
qpatrgrp.LIST_TYPE_CODE,
qpatrgrp.ASK_FOR_FLAG,
qpatrgrp.HEADER_LIMIT_EXISTS,
qpatrgrp.LINE_LIMIT_EXISTS,
NULL CURRENCY_DETAIL_ID,
NULL CURRENCY_HEADER_ID,
NULL SELLING_ROUNDING_FACTOR,
qpatrgrp.CURRENCY_CODE BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
qpl.BREAK_UOM_CODE,
qpl.BREAK_UOM_CONTEXT,
qpl.BREAK_UOM_ATTRIBUTE,
QPLINES.CURRENCY_CODE ORDER_CURRENCY,
qpq.qualifier_precedence,
'N' descendents_quals_exist,
qpl.PRICE_BREAK_TYPE_CODE
FROM qp_npreq_lines_tmp qplines,
QP_QUALIFIERS QPQ,
qp_npreq_line_patrns_tmp qppattmp1,
qp_list_lines qpl,
qp_secu_attr_groups_v qpatrgrp,
--qp_attribute_groups qpatrgrp,
qp_pte_source_systems qprs,
--qp_price_req_sources_v qprs,
QP_CURRENCY_DETAILS QCDT
WHERE qppattmp1.line_index = qplines.line_index
AND 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' --3917802
AND QPQ.LIST_HEADER_ID = QPL.LIST_HEADER_ID
AND QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_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 QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
AND (QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES
OR
QPLINES.QUALIFIERS_EXIST_FLAG = G_NO
)
AND qppattmp1.pattern_id = qpl.pattern_id
AND qppattmp1.hash_key = qpl.hash_key
AND qpl.pte_code = G_PTE_CODE
AND QPQ.ACTIVE_FLAG = G_YES
AND QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
AND qpl.pricing_phase_id = G_PRICE_LIST_PHASE_ID
AND nvl(qplines.pricing_effective_date, TRUNC(sysdate))
BETWEEN 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 qpatrgrp.list_header_id = qpl.list_header_id
AND qpatrgrp.pricing_phase_id = G_PRICE_LIST_PHASE_ID
AND qpatrgrp.active_flag = G_YES
AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = qpatrgrp.orig_org_id) OR -- begin security
(nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(qpatrgrp.global_flag,'Y') = 'Y') OR
nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND nvl(qplines.pricing_effective_date, TRUNC(sysdate))
BETWEEN nvl(qpatrgrp.START_DATE_ACTIVE_H, nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
AND nvl(qpatrgrp.END_DATE_ACTIVE_H, nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
AND nvl(qplines.pricing_effective_date, TRUNC(sysdate))
BETWEEN NVL(TRUNC(qpatrgrp.START_DATE_ACTIVE_Q),nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
AND NVL(TRUNC(qpatrgrp.END_DATE_ACTIVE_Q),nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
--AND qprs.source_system_code = qpatrgrp.source_system_code
--AND qprs.request_type_code = qplines.request_type_code -- check it
AND qprs.APPLICATION_SHORT_NAME = qpatrgrp.source_system_code
AND qprs.pte_code = G_PTE_CODE
-- AND atrgrps.currency_code = qplines.currency_code
AND qpatrgrp.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 /*+ use_nl(qcdt1) LEADING(qcdt1) index(qcdt1 QP_CURRENCY_DETAILS_N2) */ 'x'
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.currency_detail_id =
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3
where qcdt3.to_currency_code = qcdt.to_currency_code
and qcdt3.currency_header_id = qcdt.currency_header_id
AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
NVL(TRUNC(QCDT3.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
AND NVL(TRUNC(QCDT3.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
and qcdt3.precedence =
(select /*+ use_nl(qcdt2) LEADING(qcdt2) index(qcdt2 QP_CURRENCY_DETAILS_N2) */ min(qcdt2.precedence)
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 (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0);
Update_Sec_Price_List_Info(x_status_code,x_status_text);
l_list_header_id_tbl.DELETE;
l_list_line_id_tbl.DELETE;
l_line_index_tbl.DELETE;
l_matched_pattrn_id_tbl.DELETE;
l_ag_matched_pat_id_tbl.DELETE;
l_pricing_phase_id_tbl.DELETE;
l_matched_hash_key_tbl.DELETE;
l_ag_mtchd_hash_key_tbl.DELETE;
l_stage_tbl.DELETE;
l_pricing_status_code_tbl.DELETE;
l_ssc.DELETE;
l_header_quals_exist_flag.DELETE;
l_grouping_no.DELETE;
l_ag_grpng_no.DELETE;
l_eq_flag.DELETE;
l_ag_eq_flag.DELETE;
l_validated_flag.DELETE;
l_modf_lvl_code.DELETE;
l_other_oprt_count.DELETE;
l_ag_othr_oprt_cnt.DELETE;
l_null_other_oprt_count.DELETE;
l_list_type_code.DELETE;
l_ask_for_flag.DELETE;
l_hdr_lmt_exists.DELETE;
l_line_lmt_exists.DELETE;
l_curr_det_id.DELETE;
l_curr_hdr_id.DELETE;
L_SELLNG_ROUND_FTR.DELETE;
l_base_curr_code.DELETE;
l_prcng_effctve_dt.DELETE;
l_brk_uom_code.DELETE;
l_brk_uom_ctxt.DELETE;
l_brk_uom_attr.DELETE;
l_order_curr.DELETE;
L_qualifier_precedence.DELETE;
l_curr_det_id.DELETE;
l_curr_hdr_id.DELETE;
L_SELLNG_ROUND_FTR.DELETE;
l_base_curr_code.DELETE;
l_descnt_quals_exist.DELETE;
l_PRICE_BREAK_TYPE_CODE.DELETE;
INSERT INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
validated_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
CURRENCY_DETAIL_ID,
CURRENCY_HEADER_ID,
SELLING_ROUNDING_FACTOR,
BASE_CURRENCY_CODE,
PRICING_EFFECTIVE_DATE,
qualifier_precedence,
descendents_quals_exist
)
VALUES(l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_validated_flag(i),
l_modf_lvl_code(i),
l_other_oprt_count(i),
l_null_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_curr_det_id(i),
l_curr_hdr_id(i),
L_SELLNG_ROUND_FTR(i),
l_curr_code(i),
l_prcng_effctve_dt(i),
L_qualifier_precedence(i),
l_descnt_quals_exist(i)
);
l_list_header_id_tbl.DELETE;
l_list_line_id_tbl.DELETE;
l_line_index_tbl.DELETE;
l_matched_pattrn_id_tbl.DELETE;
l_ag_matched_pat_id_tbl.DELETE;
l_pricing_phase_id_tbl.DELETE;
l_matched_hash_key_tbl.DELETE;
l_ag_mtchd_hash_key_tbl.DELETE;
l_stage_tbl.DELETE;
l_pricing_status_code_tbl.DELETE;
l_ssc.DELETE;
l_header_quals_exist_flag.DELETE;
l_grouping_no.DELETE;
l_ag_grpng_no.DELETE;
l_eq_flag.DELETE;
l_ag_eq_flag.DELETE;
l_validated_flag.DELETE;
l_modf_lvl_code.DELETE;
l_other_oprt_count.DELETE;
l_ag_othr_oprt_cnt.DELETE;
l_null_other_oprt_count.DELETE;
l_list_type_code.DELETE;
l_ask_for_flag.DELETE;
l_hdr_lmt_exists.DELETE;
l_line_lmt_exists.DELETE;
l_curr_det_id.DELETE;
l_curr_hdr_id.DELETE;
L_SELLNG_ROUND_FTR.DELETE;
l_base_curr_code.DELETE;
l_prcng_effctve_dt.DELETE;
l_brk_uom_code.DELETE;
l_brk_uom_ctxt.DELETE;
l_brk_uom_attr.DELETE;
l_order_curr.DELETE;
L_qualifier_precedence.DELETE;
l_descnt_quals_exist.DELETE;
l_PRICE_BREAK_TYPE_CODE.DELETE;
INSERT INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
validated_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
CURRENCY_DETAIL_ID,
CURRENCY_HEADER_ID,
SELLING_ROUNDING_FACTOR,
BASE_CURRENCY_CODE,
PRICING_EFFECTIVE_DATE,
qualifier_precedence,
descendents_quals_exist
)
VALUES(l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_validated_flag(i),
l_modf_lvl_code(i),
l_other_oprt_count(i),
l_null_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_curr_det_id(i),
l_curr_hdr_id(i),
L_SELLNG_ROUND_FTR(i),
l_curr_code(i),
l_prcng_effctve_dt(i),
L_qualifier_precedence(i),
l_descnt_quals_exist(i)
);
INSERT
INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
validated_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
BREAK_UOM_CODE,
BREAK_UOM_CONTEXT,
BREAK_UOM_ATTRIBUTE,
ORDER_CURRENCY,
CURRENCY_DETAIL_ID,
CURRENCY_HEADER_ID,
SELLING_ROUNDING_FACTOR,
BASE_CURRENCY_CODE,
pricing_effective_date,
qualifier_precedence,
PRICE_BREAK_TYPE_CODE
)
SELECT DISTINCT l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_validated_flag(i),
l_modf_lvl_code(i),
l_other_oprt_count(i),
l_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_brk_uom_code(i),
l_brk_uom_ctxt(i),
l_brk_uom_attr(i),
l_order_curr(i),
l_curr_det_id(i),
l_curr_hdr_id(i),
L_SELLNG_ROUND_FTR(i),
l_base_curr_code(i),
l_prcng_effctve_dt(i),
L_qualifier_precedence(i),
l_PRICE_BREAK_TYPE_CODE(i)
FROM dual;
INSERT INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
pricing_phase_id,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
validated_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
descendents_quals_exist
)
SELECT DISTINCT l_list_header_id_tbl(i),
-1, -- List line id,
l_line_index_tbl(i),
l_pricing_phase_id_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i), -- Header Quals Exist,
l_ag_grpng_no(i),
l_ag_eq_flag(i),
l_validated_flag(i),
l_modf_lvl_code(i),
l_ag_othr_oprt_cnt(i),
l_null_other_oprt_count(i),
l_descnt_quals_exist(i)
FROM dual
WHERE l_ag_eq_flag(i) = 'N'
OR l_descnt_quals_exist(i) = 'Y';
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_TCA
WHERE pricing_status_code = g_status_unchanged
AND a.descendents_quals_exist = 'Y'
and a.pricing_phase_id = G_PRICE_LIST_PHASE_ID
and a.stage = l_stage
AND EXISTS (
SELECT 1
FROM qp_qualifiers b, qp_npreq_line_attrs_tmp c
WHERE b.list_header_id = a.list_header_id
AND b.list_line_id = a.list_line_id
AND (b.qualifier_grouping_no = a.grouping_no
or
b.qualifier_grouping_no = -1
)
AND b.qualify_hier_descendents_flag = 'N'
AND c.segment_id = b.segment_id
AND c.line_index = a.line_index
AND c.derived_qualifier_flag = 'Y');
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_LINE
WHERE pricing_phase_id = G_PRICE_LIST_PHASE_ID
AND pricing_status_code = g_status_unchanged
AND list_line_id <> -1
AND nvl(header_quals_exist_flag, 'N') = 'Y'
AND a.stage = l_stage
AND NOT EXISTS
(SELECT /*+ index(b QP_PREQ_PATRN_QUAL_T_N2) */ 'x'
FROM qp_preq_patrn_qual_tmp b
WHERE b.list_header_id = a.list_header_id
AND b.line_index = a.line_index
AND b.list_line_id = -1
AND b.pricing_phase_id = a.pricing_phase_id
AND pricing_status_code = g_status_unchanged
AND b.stage = l_stage );
l_list_header_id_tbl.DELETE;
l_list_line_id_tbl.DELETE;
l_line_index_tbl.DELETE;
l_matched_pattrn_id_tbl.DELETE;
l_pricing_phase_id_tbl.DELETE;
l_stage_tbl.DELETE;
l_matched_hash_key_tbl.DELETE;
l_pricing_status_code_tbl.DELETE;
l_ssc.DELETE;
l_header_quals_exist_flag.DELETE;
l_grouping_no.DELETE;
l_eq_flag.DELETE;
l_validated_flag.DELETE;
l_modf_lvl_code.DELETE;
l_other_oprt_count.DELETE;
l_null_other_oprt_count.DELETE;
l_list_type_code.DELETE;
l_ask_for_flag.DELETE;
l_hdr_lmt_exists.DELETE;
l_line_lmt_exists.DELETE;
l_curr_code.DELETE;
l_brk_uom_code.DELETE;
l_brk_uom_ctxt.DELETE;
l_brk_uom_attr.DELETE;
l_prcng_effctve_dt.DELETE;
l_curr_det_id.DELETE;
l_curr_hdr_id.DELETE;
L_SELLNG_ROUND_FTR.DELETE;
l_base_curr_code.DELETE;
L_qualifier_precedence.DELETE;
l_descnt_quals_exist.DELETE;
l_PRICE_BREAK_TYPE_CODE.DELETE;
INSERT INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
validated_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
BREAK_UOM_CODE,
BREAK_UOM_CONTEXT,
BREAK_UOM_ATTRIBUTE,
ORDER_CURRENCY,
PRICING_EFFECTIVE_DATE,
CURRENCY_DETAIL_ID,
CURRENCY_HEADER_ID,
SELLING_ROUNDING_FACTOR,
BASE_CURRENCY_CODE,
qualifier_precedence,
descendents_quals_exist,
PRICE_BREAK_TYPE_CODE
)
VALUES(l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_validated_flag(i),
l_modf_lvl_code(i),
l_other_oprt_count(i),
l_null_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_brk_uom_code(i),
l_brk_uom_ctxt(i),
l_brk_uom_attr(i),
l_curr_code(i),
l_prcng_effctve_dt(i),
l_curr_det_id(i),
l_curr_hdr_id(i),
L_SELLNG_ROUND_FTR(i),
l_base_curr_code(i),
L_qualifier_precedence(i),
l_descnt_quals_exist(i),
l_PRICE_BREAK_TYPE_CODE(i)
);
INSERT INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
validated_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
BREAK_UOM_CODE,
BREAK_UOM_CONTEXT,
BREAK_UOM_ATTRIBUTE,
ORDER_CURRENCY,
PRICING_EFFECTIVE_DATE,
qualifier_precedence,
descendents_quals_exist,
PRICE_BREAK_TYPE_CODE
)
VALUES(l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_validated_flag(i),
l_modf_lvl_code(i),
l_other_oprt_count(i),
l_null_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_brk_uom_code(i),
l_brk_uom_ctxt(i),
l_brk_uom_attr(i),
l_curr_code(i),
l_prcng_effctve_dt(i),
L_qualifier_precedence(i),
l_descnt_quals_exist(i),
l_PRICE_BREAK_TYPE_CODE(i)
);
l_list_header_id_tbl.DELETE;
l_list_line_id_tbl.DELETE;
l_line_index_tbl.DELETE;
l_matched_pattrn_id_tbl.DELETE;
l_pricing_phase_id_tbl.DELETE;
l_stage_tbl.DELETE;
l_matched_hash_key_tbl.DELETE;
l_pricing_status_code_tbl.DELETE;
l_ssc.DELETE;
l_header_quals_exist_flag.DELETE;
l_grouping_no.DELETE;
l_eq_flag.DELETE;
l_validated_flag.DELETE;
l_modf_lvl_code.DELETE;
l_other_oprt_count.DELETE;
l_null_other_oprt_count.DELETE;
l_list_type_code.DELETE;
l_ask_for_flag.DELETE;
l_hdr_lmt_exists.DELETE;
l_line_lmt_exists.DELETE;
l_curr_code.DELETE;
l_brk_uom_code.DELETE;
l_brk_uom_ctxt.DELETE;
l_brk_uom_attr.DELETE;
l_prcng_effctve_dt.DELETE;
l_curr_det_id.DELETE;
l_curr_hdr_id.DELETE;
L_SELLNG_ROUND_FTR.DELETE;
l_base_curr_code.DELETE;
L_qualifier_precedence.DELETE;
l_descnt_quals_exist.DELETE;
l_PRICE_BREAK_TYPE_CODE.DELETE;
INSERT INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
validated_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
BREAK_UOM_CODE,
BREAK_UOM_CONTEXT,
BREAK_UOM_ATTRIBUTE,
ORDER_CURRENCY,
PRICING_EFFECTIVE_DATE,
CURRENCY_DETAIL_ID,
CURRENCY_HEADER_ID,
SELLING_ROUNDING_FACTOR,
BASE_CURRENCY_CODE,
qualifier_precedence,
descendents_quals_exist,
PRICE_BREAK_TYPE_CODE
)
VALUES(l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_validated_flag(i),
l_modf_lvl_code(i),
l_other_oprt_count(i),
l_null_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_brk_uom_code(i),
l_brk_uom_ctxt(i),
l_brk_uom_attr(i),
l_curr_code(i),
l_prcng_effctve_dt(i),
l_curr_det_id(i),
l_curr_hdr_id(i),
L_SELLNG_ROUND_FTR(i),
l_base_curr_code(i),
L_qualifier_precedence(i),
l_descnt_quals_exist(i),
l_PRICE_BREAK_TYPE_CODE(i));
INSERT INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
validated_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
BREAK_UOM_CODE,
BREAK_UOM_CONTEXT,
BREAK_UOM_ATTRIBUTE,
ORDER_CURRENCY,
PRICING_EFFECTIVE_DATE,
qualifier_precedence,
descendents_quals_exist,
PRICE_BREAK_TYPE_CODE
)
VALUES(l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_validated_flag(i),
l_modf_lvl_code(i),
l_other_oprt_count(i),
l_null_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_brk_uom_code(i),
l_brk_uom_ctxt(i),
l_brk_uom_attr(i),
l_curr_code(i),
l_prcng_effctve_dt(i),
L_qualifier_precedence(i),
l_descnt_quals_exist(i),
l_PRICE_BREAK_TYPE_CODE(i));
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_TCA
WHERE pricing_status_code = g_status_unchanged
AND a.descendents_quals_exist = 'Y'
and a.pricing_phase_id = G_PRICE_LIST_PHASE_ID
and a.stage = l_stage
AND EXISTS (
SELECT 1
FROM qp_qualifiers b, qp_npreq_line_attrs_tmp c
WHERE b.list_header_id = a.list_header_id
AND b.list_line_id = a.list_line_id
AND (b.qualifier_grouping_no = a.grouping_no
or
b.qualifier_grouping_no = -1
)
AND b.qualify_hier_descendents_flag = 'N'
AND c.segment_id = b.segment_id
AND c.line_index = a.line_index
AND c.derived_qualifier_flag = 'Y');
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,x_status_code,x_status_text); --[julin/4708044]
-- Update the request line status for lines which got valid price list
Update_Request_Line_Status(p_control_rec,'FAILURE',p_freeze_override_flag,x_status_code,x_status_text); --[juiln/4708044]
SELECT /*+ ORDERED index(qplines QP_PREQ_LINES_TMP_N3)
index(qpl QP_LIST_LINES_N16)
index(qppattmp1 QP_NPREQ_LINE_PATRNS_T_N2)
index(qpatrgrp QP_ATTRIBUTE_GROUPS_N1)
index(qppattmp2 QP_NPREQ_LINE_PATRNS_T_N1)
index(qprs qp_pte_source_systems_u2)
l_pat_cache_both */
DISTINCT
qpl.LIST_HEADER_ID,
qpl.LIST_LINE_ID,
qplines.LINE_INDEX,
qpl.pattern_id QPL_MATCHED_PATTRN_ID,
qpatrgrp.pattern_id AG_MATCHED_PATTRN_ID,
p_pricing_phase_id,
qpl.HASH_KEY QPL_MATCHED_HASH_KEY,
qpatrgrp.HASH_KEY AG_MATCHED_HASH_KEY,
G_STAGE_CACHE_LST_HDR_LIN_SRCH STAGE,
G_STATUS_UNCHANGED PRICING_STATUS_CODE,
qpatrgrp.source_system_code,
--decode(bitand(qpl.qualification_ind,2),2,'Y','N') HEADER_QUALS_EXIST_FLAG,
DECODE(qpatrgrp.EQ_FLAG,'N','Y','N') HEADER_QUALS_EXIST_FLAG,
-1 qpl_grpng_num,
qpatrgrp.GROUPING_NO ag_grpng_num,
qpl.EQ_FLAG QPL_EQFLAG,
qpatrgrp.EQ_FLAG ATRGRP_EQFLAG,
qplines.VALIDATED_FLAG,
qpl.MODIFIER_LEVEL_CODE,
qpl.null_other_oprt_count qpl_other_oprt_cnt,
qpatrgrp.other_oprt_count ag_other_oprt_cnt,
qpatrgrp.null_other_oprt_count ag_null_othr_oprt_cnt,
--qpl.other_oprt_count,
--qpl.null_other_oprt_count,
qpatrgrp.LIST_TYPE_CODE,
qpatrgrp.ASK_FOR_FLAG,
qpatrgrp.HEADER_LIMIT_EXISTS,
qpatrgrp.LINE_LIMIT_EXISTS,
NULL CURRENCY_DETAIL_ID,
qpatrgrp.CURRENCY_HEADER_ID,
NULL SELLING_ROUNDING_FACTOR,
qpatrgrp.CURRENCY_CODE BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
qpl.BREAK_UOM_CODE,
qpl.BREAK_UOM_CONTEXT,
qpl.BREAK_UOM_ATTRIBUTE,
QPLINES.CURRENCY_CODE ORDER_CURRENCY,
qpatrgrp.descendents_quals_exist,
QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp1,
qp_list_lines qpl,
qp_secu_attr_groups_v qpatrgrp,
--qp_attribute_groups qpatrgrp,
qp_pte_source_systems qprs,
--qp_price_req_sources_v qprs,
qp_npreq_line_patrns_tmp qppattmp2
WHERE QPLINES.VALIDATED_FLAG = G_NO
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 qppattmp1.line_index = qplines.line_index
AND qpl.pricing_phase_id = p_pricing_phase_id
AND qpl.list_header_id = QPLINES.PRICE_LIST_HEADER_ID
AND qpl.pattern_id = qppattmp1.pattern_id
AND qpl.hash_key = qppattmp1.hash_key
AND qpl.pte_code = G_PTE_CODE
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(qpl.start_date_active, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qpl.end_date_active, nvl(qplines.pricing_effective_date, sysdate)))
AND qpatrgrp.list_header_id = qpl.list_header_id
AND qpatrgrp.pricing_phase_id = p_pricing_phase_id
AND qpatrgrp.active_flag = G_YES
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate))
BETWEEN TRUNC(nvl(qpatrgrp.START_DATE_ACTIVE_H,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(nvl(qpatrgrp.END_DATE_ACTIVE_H,nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(NVL(qpatrgrp.START_DATE_ACTIVE_Q,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(qpatrgrp.END_DATE_ACTIVE_Q,nvl(qplines.pricing_effective_date, sysdate)))
--AND qprs.source_system_code = qpatrgrp.source_system_code
--AND qprs.request_type_code = qplines.request_type_code -- check it
AND qprs.APPLICATION_SHORT_NAME = qpatrgrp.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND qppattmp2.line_index = qplines.line_index
AND qppattmp2.pattern_id = qpatrgrp.pattern_id
AND qppattmp2.hash_key = qpatrgrp.hash_key
AND qpatrgrp.CURRENCY_CODE = QPLINES.CURRENCY_CODE
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0)
UNION ALL
SELECT /*+ ORDERED index(qplines QP_PREQ_LINES_TMP_N3)
index(qpl QP_LIST_LINES_N16)
index(qppattmp1 QP_NPREQ_LINE_PATRNS_T_N2)
index(qprs qp_pte_source_systems_u2)
l_pat_cache_both */
DISTINCT
qpl.LIST_HEADER_ID,
qpl.LIST_LINE_ID,
qplines.LINE_INDEX,
qpl.pattern_id QPL_MATCHED_PATTRN_ID,
null, --qpatrgrp.pattern_id AG_MATCHED_PATTRN_ID,
p_pricing_phase_id,
qpl.HASH_KEY QPL_MATCHED_HASH_KEY,
null, --qpatrgrp.HASH_KEY AG_MATCHED_HASH_KEY,
G_STAGE_CACHE_LST_HDR_LIN_SRCH STAGE,
G_STATUS_UNCHANGED PRICING_STATUS_CODE,
qph.source_system_code,
'N' ,-- DECODE(qpatrgrp.EQ_FLAG,'N','Y','N') HEADER_QUALS_EXIST_FLAG,
-1 qpl_grpng_num,
null, --qpatrgrp.GROUPING_NO ag_grpng_num,
qpl.EQ_FLAG QPL_EQFLAG,
null, --qpatrgrp.EQ_FLAG ATRGRP_EQFLAG,
qplines.VALIDATED_FLAG,
qpl.MODIFIER_LEVEL_CODE,
qpl.null_other_oprt_count qpl_other_oprt_cnt,
0, --qpatrgrp.other_oprt_count ag_other_oprt_cnt,
0, --qpatrgrp.null_other_oprt_count ag_null_othr_oprt_cnt,
qph.LIST_TYPE_CODE,
qph.ASK_FOR_FLAG,
qph.LIMIT_EXISTS_FLAG,
qpl.LIMIT_EXISTS_FLAG,
NULL CURRENCY_DETAIL_ID,
qph.CURRENCY_HEADER_ID,
NULL SELLING_ROUNDING_FACTOR,
qph.CURRENCY_CODE BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
qpl.BREAK_UOM_CODE,
qpl.BREAK_UOM_CONTEXT,
qpl.BREAK_UOM_ATTRIBUTE,
QPLINES.CURRENCY_CODE ORDER_CURRENCY,
'N' descendents_quals_exist,
QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp1,
qp_list_lines qpl,
qp_list_headers_b qph,
qp_pte_source_systems qprs
--qp_price_req_sources_v qprs
WHERE QPLINES.VALIDATED_FLAG = G_YES
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 qppattmp1.line_index = qplines.line_index
AND qpl.pricing_phase_id = p_pricing_phase_id
AND qpl.list_header_id = QPLINES.PRICE_LIST_HEADER_ID
AND qpl.pattern_id = qppattmp1.pattern_id
AND qpl.hash_key = qppattmp1.hash_key
AND qpl.pte_code = G_PTE_CODE
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(qpl.start_date_active, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qpl.end_date_active, nvl(qplines.pricing_effective_date, sysdate)))
AND qph.list_header_id = qpl.list_header_id
AND qph.active_flag = G_YES
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate))
BETWEEN TRUNC(nvl(qph.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(nvl(qph.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date, sysdate)))
--AND qprs.source_system_code = qph.source_system_code
--AND qprs.request_type_code = qplines.request_type_code -- check it
AND qprs.APPLICATION_SHORT_NAME = qph.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND qph.CURRENCY_CODE = QPLINES.CURRENCY_CODE
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0);
SELECT /*+ ORDERED index(QCDT QP_CURRENCY_DETAILS_N2)
index(qplines QP_PREQ_LINES_TMP_N3)
index(qpl QP_LIST_LINES_N16)
index(qppattmp1 QP_NPREQ_LINE_PATRNS_T_N2)
index(qpatrgrp QP_ATTRIBUTE_GROUPS_N1)
index(qppattmp2 QP_NPREQ_LINE_PATRNS_T_N1)
index(qprs qp_pte_source_systems_u2)
l_pat_cache_both_curr */
DISTINCT
qpl.LIST_HEADER_ID,
qpl.LIST_LINE_ID,
qplines.LINE_INDEX,
qpl.pattern_id QPL_MATCHED_PATTRN_ID,
qpatrgrp.pattern_id AG_MATCHED_PATTRN_ID,
p_pricing_phase_id,
qpl.HASH_KEY QPL_MATCHED_HASH_KEY,
qpatrgrp.HASH_KEY AG_MATCHED_HASH_KEY,
G_STAGE_CACHE_LST_HDR_LIN_SRCH STAGE,
G_STATUS_UNCHANGED PRICING_STATUS_CODE,
qpatrgrp.source_system_code,
--decode(bitand(qpl.qualification_ind,2),2,'Y','N') HEADER_QUALS_EXIST_FLAG,
DECODE(qpatrgrp.EQ_FLAG,'N','Y',DECODE(qpatrgrp.descendents_quals_exist,'Y','Y','N')) HEADER_QUALS_EXIST_FLAG,
-1 qpl_grpng_num,
qpatrgrp.GROUPING_NO ag_grpng_num,
qpl.EQ_FLAG QPL_EQFLAG,
qpatrgrp.EQ_FLAG ATRGRP_EQFLAG,
qplines.VALIDATED_FLAG,
qpl.MODIFIER_LEVEL_CODE,
qpl.null_other_oprt_count qpl_other_oprt_cnt,
qpatrgrp.other_oprt_count ag_other_oprt_cnt,
qpatrgrp.null_other_oprt_count ag_null_othr_oprt_cnt,
qpatrgrp.LIST_TYPE_CODE,
qpatrgrp.ASK_FOR_FLAG,
qpatrgrp.HEADER_LIMIT_EXISTS,
qpatrgrp.LINE_LIMIT_EXISTS,
QCDT.CURRENCY_DETAIL_ID,
QCDT.CURRENCY_HEADER_ID,
QCDT.SELLING_ROUNDING_FACTOR,
qpatrgrp.CURRENCY_CODE BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
qpl.BREAK_UOM_CODE,
qpl.BREAK_UOM_CONTEXT,
qpl.BREAK_UOM_ATTRIBUTE,
QPLINES.CURRENCY_CODE ORDER_CURRENCY,
qpatrgrp.descendents_quals_exist,
QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp1,
qp_list_lines qpl,
qp_secu_attr_groups_v qpatrgrp,
--qp_attribute_groups qpatrgrp,
qp_pte_source_systems qprs,
--qp_price_req_sources_v qprs,
qp_npreq_line_patrns_tmp qppattmp2,
QP_CURRENCY_DETAILS QCDT
WHERE QPLINES.VALIDATED_FLAG = G_NO
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 qppattmp1.line_index = qplines.line_index
AND qpl.pricing_phase_id = p_pricing_phase_id
AND qpl.list_header_id = QPLINES.PRICE_LIST_HEADER_ID
AND qpl.pattern_id = qppattmp1.pattern_id
AND qpl.hash_key = qppattmp1.hash_key
AND qpl.pte_code = G_PTE_CODE
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(qpl.start_date_active, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qpl.end_date_active, nvl(qplines.pricing_effective_date, sysdate)))
AND qpatrgrp.list_header_id = qpl.list_header_id
AND qpatrgrp.pricing_phase_id = p_pricing_phase_id
AND qpatrgrp.active_flag = G_YES
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate))
BETWEEN TRUNC(nvl(qpatrgrp.START_DATE_ACTIVE_H,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(nvl(qpatrgrp.END_DATE_ACTIVE_H,nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(NVL(qpatrgrp.START_DATE_ACTIVE_Q,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(qpatrgrp.END_DATE_ACTIVE_Q,nvl(qplines.pricing_effective_date, sysdate)))
--AND qprs.source_system_code = qpatrgrp.source_system_code
--AND qprs.request_type_code = qplines.request_type_code -- check it
AND qprs.APPLICATION_SHORT_NAME = qpatrgrp.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND qppattmp2.line_index = qplines.line_index
AND qppattmp2.pattern_id = qpatrgrp.pattern_id
AND qppattmp2.hash_key = qpatrgrp.hash_key
AND qpatrgrp.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND (
(qcdt.curr_attribute_context is null
and not exists
(select /*+ use_nl(qcdt1) LEADING(qcdt1) index(qcdt1 QP_CURRENCY_DETAILS_N2) */ 'x'
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 TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT1.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT1.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
)
)
OR
(qcdt.curr_attribute_context is not null
and qcdt.currency_detail_id =
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3
where qcdt3.to_currency_code = qcdt.to_currency_code
and qcdt3.currency_header_id = qcdt.currency_header_id
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT3.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT3.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
and qcdt3.precedence =
(select /*+ use_nl(qcdt2) LEADING(qcdt2) index(qcdt2 QP_CURRENCY_DETAILS_N2) */
min(qcdt2.precedence)
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 TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT2.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT2.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
))
)
)
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0)
UNION
SELECT /*+ ORDERED index(QCDT QP_CURRENCY_DETAILS_N2)
index(qplines QP_PREQ_LINES_TMP_N3)
index(qpl QP_LIST_LINES_N16)
index(qppattmp1 QP_NPREQ_LINE_PATRNS_T_N2)
index(qprs qp_pte_source_systems_u2)
l_pat_cache_both_curr */
DISTINCT
qpl.LIST_HEADER_ID,
qpl.LIST_LINE_ID,
qplines.LINE_INDEX,
qpl.pattern_id QPL_MATCHED_PATTRN_ID,
null, --qpatrgrp.pattern_id AG_MATCHED_PATTRN_ID,
p_pricing_phase_id,
qpl.HASH_KEY QPL_MATCHED_HASH_KEY,
null, --qpatrgrp.HASH_KEY AG_MATCHED_HASH_KEY,
G_STAGE_CACHE_LST_HDR_LIN_SRCH STAGE,
G_STATUS_UNCHANGED PRICING_STATUS_CODE,
qph.source_system_code,
--decode(bitand(qpl.qualification_ind,2),2,'Y','N') HEADER_QUALS_EXIST_FLAG,
'N' ,-- DECODE(qpatrgrp.EQ_FLAG,'N','Y','N') HEADER_QUALS_EXIST_FLAG,
-1 qpl_grpng_num,
null, --qpatrgrp.GROUPING_NO ag_grpng_num,
qpl.EQ_FLAG QPL_EQFLAG,
null, --qpatrgrp.EQ_FLAG ATRGRP_EQFLAG,
qplines.VALIDATED_FLAG,
qpl.MODIFIER_LEVEL_CODE,
qpl.null_other_oprt_count qpl_other_oprt_cnt,
0, --qpatrgrp.other_oprt_count ag_other_oprt_cnt,
0, --qpatrgrp.null_other_oprt_count ag_null_othr_oprt_cnt,
qph.LIST_TYPE_CODE,
qph.ASK_FOR_FLAG,
qph.LIMIT_EXISTS_FLAG,
qpl.LIMIT_EXISTS_FLAG,
QCDT.CURRENCY_DETAIL_ID,
QCDT.CURRENCY_HEADER_ID,
QCDT.SELLING_ROUNDING_FACTOR,
qph.CURRENCY_CODE BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
qpl.BREAK_UOM_CODE,
qpl.BREAK_UOM_CONTEXT,
qpl.BREAK_UOM_ATTRIBUTE,
QPLINES.CURRENCY_CODE ORDER_CURRENCY,
'N' descendents_quals_exist,
QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp1,
qp_list_lines qpl,
qp_list_headers_b qph,
--qp_price_req_sources_v qprs,
qp_pte_source_systems qprs,
QP_CURRENCY_DETAILS QCDT
WHERE QPLINES.VALIDATED_FLAG = G_YES
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 qppattmp1.line_index = qplines.line_index
AND qpl.pricing_phase_id = p_pricing_phase_id
AND qpl.list_header_id = QPLINES.PRICE_LIST_HEADER_ID
AND qpl.pattern_id = qppattmp1.pattern_id
AND qpl.hash_key = qppattmp1.hash_key
AND qpl.pte_code = G_PTE_CODE
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(qpl.start_date_active, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qpl.end_date_active, nvl(qplines.pricing_effective_date, sysdate)))
AND qph.list_header_id = qpl.list_header_id
AND qph.active_flag = G_YES
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate))
BETWEEN TRUNC(nvl(qph.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(nvl(qph.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date, sysdate)))
--AND qprs.source_system_code = qph.source_system_code
--AND qprs.request_type_code = qplines.request_type_code -- check it
AND qprs.APPLICATION_SHORT_NAME = qph.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND qph.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND (
(qcdt.curr_attribute_context is null
and not exists
(select /*+ use_nl(qcdt1) LEADING(qcdt1) index(qcdt1 QP_CURRENCY_DETAILS_N2) */ 'x'
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 TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT1.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT1.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
)
)
OR
(qcdt.curr_attribute_context is not null
and qcdt.currency_detail_id =
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3
where qcdt3.to_currency_code = qcdt.to_currency_code
and qcdt3.currency_header_id = qcdt.currency_header_id
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT3.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT3.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
and qcdt3.precedence =
(select /*+ use_nl(qcdt2) LEADING(qcdt2) index(qcdt2 QP_CURRENCY_DETAILS_N2) */
min(qcdt2.precedence)
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 TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT2.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT2.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
))
)
)
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0);
l_list_header_id_tbl.DELETE;
l_list_line_id_tbl.DELETE;
l_line_index_tbl.DELETE;
l_matched_pattrn_id_tbl.DELETE;
l_ag_matched_pat_id_tbl.DELETE;
l_pricing_phase_id_tbl.DELETE;
l_matched_hash_key_tbl.DELETE;
l_ag_mtchd_hash_key_tbl.DELETE;
l_stage_tbl.DELETE;
l_pricing_status_code_tbl.DELETE;
l_ssc.DELETE;
l_header_quals_exist_flag.DELETE;
l_grouping_no.DELETE;
l_ag_grpng_no.DELETE;
l_eq_flag.DELETE;
l_ag_eq_flag.DELETE;
l_validated_flag.DELETE;
l_modf_lvl_code.DELETE;
l_other_oprt_count.DELETE;
l_ag_othr_oprt_cnt.DELETE;
l_null_other_oprt_count.DELETE;
l_list_type_code.DELETE;
l_ask_for_flag.DELETE;
l_hdr_lmt_exists.DELETE;
l_line_lmt_exists.DELETE;
l_curr_det_id.DELETE;
l_curr_hdr_id.DELETE;
L_SELLNG_ROUND_FTR.DELETE;
l_base_curr_code.DELETE;
l_prcng_effctve_dt.DELETE;
l_brk_uom_code.DELETE;
l_brk_uom_ctxt.DELETE;
l_brk_uom_attr.DELETE;
l_order_curr.DELETE;
l_descnt_quals_exist.DELETE;
l_PRICE_BREAK_TYPE_CODE.DELETE;
INSERT
INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
validated_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
BREAK_UOM_CODE,
BREAK_UOM_CONTEXT,
BREAK_UOM_ATTRIBUTE,
ORDER_CURRENCY,
CURRENCY_DETAIL_ID,
CURRENCY_HEADER_ID,
SELLING_ROUNDING_FACTOR,
BASE_CURRENCY_CODE,
pricing_effective_date,
price_break_type_code
)
SELECT DISTINCT l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_validated_flag(i),
l_modf_lvl_code(i),
l_other_oprt_count(i),
l_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_brk_uom_code(i),
l_brk_uom_ctxt(i),
l_brk_uom_attr(i),
l_order_curr(i),
l_curr_det_id(i),
l_curr_hdr_id(i),
L_SELLNG_ROUND_FTR(i),
l_base_curr_code(i),
l_prcng_effctve_dt(i),
l_PRICE_BREAK_TYPE_CODE(i)
FROM dual;
INSERT INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
pricing_phase_id,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
validated_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
descendents_quals_exist,
matched_pattrn_id, --bug 10216430
matched_hash_key --bug 10216430
)
SELECT DISTINCT l_list_header_id_tbl(i),
-1, -- List line id,
l_line_index_tbl(i),
l_pricing_phase_id_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i), -- Header Quals Exist,
l_ag_grpng_no(i),
l_ag_eq_flag(i),
l_validated_flag(i),
l_modf_lvl_code(i),
l_ag_othr_oprt_cnt(i),
l_null_other_oprt_count(i),
l_descnt_quals_exist(i),
l_ag_matched_pat_id_tbl(i), -- bug 10216430
l_ag_mtchd_hash_key_tbl(i) -- bug 10216430
FROM dual
WHERE l_ag_eq_flag(i) = 'N'
OR l_descnt_quals_exist(i) = 'Y'
OR l_ag_mtchd_hash_key_tbl(i)<>'BLIND'; -- bug 10216430
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_TCA
WHERE pricing_status_code = g_status_unchanged
AND a.descendents_quals_exist = 'Y'
and a.pricing_phase_id = p_pricing_phase_id
and a.stage = G_STAGE_CACHE_LST_HDR_LIN_SRCH
AND EXISTS (
SELECT 1
FROM qp_qualifiers b, qp_npreq_line_attrs_tmp c
WHERE b.list_header_id = a.list_header_id
AND b.list_line_id = a.list_line_id
AND (b.qualifier_grouping_no = a.grouping_no
or
b.qualifier_grouping_no = -1
)
AND b.qualify_hier_descendents_flag = 'N'
AND c.segment_id = b.segment_id
AND c.line_index = a.line_index
AND c.derived_qualifier_flag = 'Y');
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_LINE
WHERE pricing_phase_id = p_pricing_phase_id
AND pricing_status_code = g_status_unchanged
AND list_line_id <> -1
AND nvl(header_quals_exist_flag, 'N') = 'Y'
AND a.stage = G_STAGE_CACHE_LST_HDR_LIN_SRCH
AND NOT EXISTS
(SELECT /*+ index(b QP_PREQ_PATRN_QUAL_T_N2) */ 'x'
FROM qp_preq_patrn_qual_tmp b
WHERE b.list_header_id = a.list_header_id
AND b.line_index = a.line_index
AND b.list_line_id = -1
AND b.pricing_phase_id = a.pricing_phase_id
AND pricing_status_code = g_status_unchanged
AND b.stage = G_STAGE_CACHE_LST_HDR_LIN_SRCH);
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]
Update_Request_Line_Status(p_control_rec,'FAILURE',p_freeze_override_flag,x_status_code,x_status_text); --[juiln/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, --bug 8359587
--COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP, --[julin/3527596,4274099]
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, --bug 8359587
-- COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP, --[julin/3527596,4274099]
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, --bug 8359587
--COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP, --[julin/3527596,4274099]
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, --bug 8359587
--COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP, --[julin/3527596,4274099]
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, --bug 8359587
--COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP, --[julin/3527596,4274099]
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, --bug 8359587
--COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP, --[julin/3527596,4274099]
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, --bug 8359587
--COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP, --[julin/3527596,4274099]
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, --bug 8359587
--COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP, --[julin/3527596,4274099]
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.service_duration, -- service project
qpl.service_period, -- service project
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 TRUNC(qplines.pricing_effective_date) BETWEEN
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date))
and nvl(TRUNC(qpl.end_date_active),TRUNC(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.service_duration, -- service project
qpl.service_period, -- service project
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 TRUNC(qplines.pricing_effective_date) BETWEEN
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date))
and nvl(TRUNC(qpl.end_date_active),TRUNC(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.service_duration, -- service project
qpl.service_period, -- service project
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 TRUNC(qplines.pricing_effective_date) BETWEEN
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qpl.end_date_active),TRUNC(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.service_duration, -- service project
qpl.service_period, -- service project
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 TRUNC(qplines.pricing_effective_date) BETWEEN
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qpl.end_date_active),TRUNC(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.service_duration, -- service project
qpl.service_period, -- service project
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.service_duration, -- service project
qpl.service_period, -- service project
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.service_duration, -- service project
qpl.service_period, -- service project
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(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) BETWEEN
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) AND
nvl(qph.end_date_active,nvl(TRUNC(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(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) BETWEEN --bug7307625
nvl(qpl.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) AND
nvl(qpl.end_date_active,nvl(TRUNC(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.service_duration, -- service project
qpl.service_period, -- service project
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(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) BETWEEN
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) AND
nvl(qph.end_date_active,nvl(TRUNC(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 TRUNC(qplines.pricing_effective_date) BETWEEN
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qpl.end_date_active),TRUNC(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.service_duration, -- service project
qpl.service_period, -- service project
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(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) BETWEEN
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) AND
nvl(qph.end_date_active,nvl(TRUNC(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 TRUNC(qplines.pricing_effective_date) BETWEEN
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qpl.end_date_active),TRUNC(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);
qp_debug_util.tstart('INSERT_QUAL','Cursor INSERT_QUAL');
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);
qp_debug_util.tstop('INSERT_QUAL');
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_SERVICE_DURATION_TBL_P.delete; -- service project
G_SERVICE_PERIOD_TBL_P.delete; -- service project
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_SERVICE_DURATION_TBL_P.delete; -- service project
G_SERVICE_PERIOD_TBL_P.delete; -- service project
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_SERVICE_DURATION_TBL_P.delete; -- service project
G_SERVICE_PERIOD_TBL_P.delete; -- service project
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_SERVICE_DURATION_TBL_P.delete; -- service project
G_SERVICE_PERIOD_TBL_P.delete; -- service project
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_SERVICE_DURATION_TBL_P.delete; -- service project
G_SERVICE_PERIOD_TBL_P.delete; -- service project
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_SERVICE_DURATION_TBL_B.delete; -- service project
G_SERVICE_PERIOD_TBL_B.delete; -- service project
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));
qp_debug_util.tstart('INSERT_LDETS_PVT','Inserting into ldets INSERT_LDETS_PVT');
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_SERVICE_DURATION =>G_SERVICE_DURATION_TBL, -- service project
p_SERVICE_PERIOD =>G_SERVICE_PERIOD_TBL, -- service project
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
);
qp_debug_util.tstop('INSERT_LDETS_PVT');
qp_debug_util.tstart('INSERT_LINE_ATTRS2','Inserting into line attrs INSERT_LINE_ATTRS2');
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);
qp_debug_util.tstop('INSERT_LINE_ATTRS2');
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
qp_debug_util.tstart('D_EXCLUDER','Update statement D_EXCLUDER');
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));
qp_debug_util.tstart('INSERT_LINE_ATTRS2','Inserting into line attrs INSERT_LINE_ATTRS2');
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);
qp_debug_util.tstop('INSERT_LINE_ATTRS2');
engine_debug('< In Select_modifiers>: '||SQLERRM);
END SELECT_MODIFIERS;
procedure SELECT_PRICE_LIST_LINES_PAT(
p_pricing_phase_id IN NUMBER,
p_freeze_override_flag IN VARCHAR2,
p_search_path IN NUMBER,
p_control_rec IN CONTROL_RECORD_TYPE,
x_status_code OUT NOCOPY VARCHAR2,
x_status_text OUT NOCOPY VARCHAR2
)
AS
l_trunct_sysdate DATE := TRUNC(sysdate);
SELECT /*+ ORDERED index(atrgrps QP_ATTRIBUTE_GROUPS_N3)
index(qppat QP_NPREQ_LINE_PATRNS_T_N2)
index(qprs qp_pte_source_systems_u2)
l_pat_header_cache_p1 */
DISTINCT atrgrps.LIST_HEADER_ID,
atrgrps.LIST_LINE_ID,
qplines.LINE_INDEX,
atrgrps.pattern_id MATCHED_PATTRN_ID,
p_pricing_phase_id,
atrgrps.HASH_KEY MATCHED_HASH_KEY,
G_STAGE_CACHE_PL_HDR STAGE,
G_STATUS_UNCHANGED PRICING_STATUS_CODE,
atrgrps.source_system_code,
atrgrps.HEADER_QUALS_EXIST_FLAG,
atrgrps.GROUPING_NO,
atrgrps.EQ_FLAG,
qplines.VALIDATED_FLAG,
atrgrps.MODIFIER_LEVEL_CODE,
atrgrps.other_oprt_count,
atrgrps.null_other_oprt_count,
atrgrps.LIST_TYPE_CODE,
atrgrps.ASK_FOR_FLAG,
atrgrps.HEADER_LIMIT_EXISTS,
atrgrps.LINE_LIMIT_EXISTS,
NULL CURRENCY_DETAIL_ID,
atrgrps.CURRENCY_HEADER_ID,
NULL SELLING_ROUNDING_FACTOR,
atrgrps.CURRENCY_CODE BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
atrgrps.descendents_quals_exist,
atrgrps.effective_precedence --bug 12731268
FROM (SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED) --check this condition
AND nvl(validated_flag,G_NO) = G_NO) qplines,
qp_npreq_line_patrns_tmp qppattmp,
qp_secu_attr_groups_v atrgrps,
--qp_attribute_groups atrgrps,
qp_pte_source_systems qprs
--qp_price_req_sources_v qprs
WHERE qppattmp.line_index = qplines.line_index
AND atrgrps.pricing_phase_id = p_pricing_phase_id
AND atrgrps.list_line_id = -1
AND atrgrps.active_flag = G_YES
AND atrgrps.pattern_id = qppattmp.pattern_id
AND atrgrps.hash_key = qppattmp.hash_key
AND atrgrps.pte_code = G_PTE_CODE
AND atrgrps.currency_code = qplines.currency_code
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 qprs.source_system_code = atrgrps.source_system_code
--AND qprs.request_type_code = qplines.request_type_code -- check it
AND qprs.APPLICATION_SHORT_NAME = atrgrps.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate))
BETWEEN TRUNC(nvl(atrgrps.START_DATE_ACTIVE_H,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(nvl(atrgrps.END_DATE_ACTIVE_H,nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(NVL(atrgrps.START_DATE_ACTIVE_Q,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(atrgrps.END_DATE_ACTIVE_Q,nvl(qplines.pricing_effective_date, sysdate)))
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0);
SELECT /*+ ORDERED index(qpl QP_LIST_LINES_N16)
index(qppat QP_NPREQ_LINE_PATRNS_T_N2)
index(qppqual QP_PREQ_PATRN_QUAL_T_N2)
l_pat_line_cache_p1 */
DISTINCT qpl.LIST_HEADER_ID,
qpl.LIST_LINE_ID,
qplines.LINE_INDEX,
qpl.PATTERN_ID MATCHED_PATTRN_ID,
p_pricing_phase_id,
qpl.HASH_KEY MATCHED_HASH_KEY,
G_STAGE_CACHE_PL_LIN STAGE,
G_STATUS_UNCHANGED PRICING_STATUS_CODE,
qppqual.source_system_code,
decode(bitand(qpl.qualification_ind,2),2,'Y','N') HEADER_QUALS_EXIST_FLAG,
-1 GROUPING_NO,
qpl.EQ_FLAG,
qplines.VALIDATED_FLAG,
qpl.MODIFIER_LEVEL_CODE,
qpl.null_other_oprt_count,
qppqual.list_type_code,
qppqual.ask_for_flag,
qppqual.HEADER_LIMIT_EXISTS, -- HEADER_LIMIT_EXISTS
qppqual.LINE_LIMIT_EXISTS, -- LINE_LIMIT_EXISTS,
qpl.BREAK_UOM_CODE,
qpl.BREAK_UOM_CONTEXT,
qpl.BREAK_UOM_ATTRIBUTE,
QPLINES.CURRENCY_CODE ORDER_CURRENCY,
qppqual.CURRENCY_DETAIL_ID,
qppqual.CURRENCY_HEADER_ID,
qppqual.SELLING_ROUNDING_FACTOR,
qppqual.BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
QPL.PRICE_BREAK_TYPE_CODE,
'N' descendents_quals_exist
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppat,
qp_preq_patrn_qual_tmp qppqual,
qp_list_lines qpl
WHERE qplines.processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
AND nvl(qplines.validated_flag,G_NO) = G_NO
AND qppat.line_index = qplines.line_index
AND qppqual.line_index = qppat.line_index
AND qppqual.pricing_phase_id = p_pricing_phase_id
AND qppqual.pricing_status_code = 'X'
AND qppqual.stage = G_STAGE_CACHE_PL_HDR --check it
AND qpl.pricing_phase_id = p_pricing_phase_id
AND qpl.PATTERN_ID = qppat.PATTERN_ID
AND qpl.hash_key = qppat.HASH_KEY
AND qpl.list_header_id = qppqual.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')
AND qpl.modifier_level_code = qplines.line_type_code -- check it
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(qpl.start_date_active, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qpl.end_date_active, nvl(qplines.pricing_effective_date, sysdate)))
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0);
SELECT /*+ ORDERED index(qplines QP_PREQ_LINES_TMP_U1)
index(qpl QP_LIST_LINES_N17)
index(qppattmp1 QP_NPREQ_LINE_PATRNS_T_N2)
index(qpatrgrp QP_ATTRIBUTE_GROUPS_N1)
index(qppattmp2 QP_NPREQ_LINE_PATRNS_T_N1)
index(qprs qp_pte_source_systems_u2)
l_pat_line_p2 */
DISTINCT
qpl.LIST_HEADER_ID,
qpl.LIST_LINE_ID,
qplines.LINE_INDEX,
qpl.pattern_id QPL_MATCHED_PATTRN_ID,
qpatrgrp.pattern_id AG_MATCHED_PATTRN_ID,
p_pricing_phase_id,
qpl.HASH_KEY QPL_MATCHED_HASH_KEY,
qpatrgrp.HASH_KEY AG_MATCHED_HASH_KEY,
G_STAGE_CACHE_PL_LIN2 STAGE,
G_STATUS_UNCHANGED PRICING_STATUS_CODE,
qpatrgrp.source_system_code,
--DECODE(qpatrgrp.EQ_FLAG,'N','Y','N') HEADER_QUALS_EXIST_FLAG,
DECODE(qpatrgrp.EQ_FLAG,'N','Y',DECODE(qpatrgrp.descendents_quals_exist,'Y','Y','N')) HEADER_QUALS_EXIST_FLAG,
-1 qpl_grpng_num,
qpatrgrp.GROUPING_NO ag_grpng_num,
qpl.EQ_FLAG QPL_EQFLAG,
qpatrgrp.EQ_FLAG ATRGRP_EQFLAG,
qplines.VALIDATED_FLAG,
qpl.MODIFIER_LEVEL_CODE,
qpl.null_other_oprt_count qpl_other_oprt_cnt,
qpatrgrp.other_oprt_count ag_other_oprt_cnt,
qpatrgrp.null_other_oprt_count ag_null_othr_oprt_cnt,
qpatrgrp.LIST_TYPE_CODE,
qpatrgrp.ASK_FOR_FLAG,
qpatrgrp.HEADER_LIMIT_EXISTS,
qpatrgrp.LINE_LIMIT_EXISTS,
NULL CURRENCY_DETAIL_ID,
NULL CURRENCY_HEADER_ID,
NULL SELLING_ROUNDING_FACTOR,
qpatrgrp.CURRENCY_CODE BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
qpl.BREAK_UOM_CODE,
qpl.BREAK_UOM_CONTEXT,
qpl.BREAK_UOM_ATTRIBUTE,
QPLINES.CURRENCY_CODE ORDER_CURRENCY,
qpl.PRICE_BREAK_TYPE_CODE,
qpatrgrp.descendents_quals_exist,
qpatrgrp.effective_precedence --bug 12731268
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp1,
qp_list_lines qpl,
qp_secu_attr_groups_v qpatrgrp,
--qp_attribute_groups qpatrgrp,
qp_pte_source_systems qprs,
--qp_price_req_sources_v qprs,
qp_npreq_line_patrns_tmp qppattmp2
WHERE qplines.processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED) --check this condition
AND nvl(qplines.validated_flag,G_NO) = G_NO
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 qppattmp1.line_index = qplines.line_index
AND qpl.pricing_phase_id = p_pricing_phase_id
AND qpl.pattern_id = qppattmp1.pattern_id
AND qpl.hash_key = qppattmp1.hash_key
AND qpl.pte_code = G_PTE_CODE
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate))
BETWEEN TRUNC(nvl(qpl.start_date_active,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(nvl(qpl.end_date_active,nvl(qplines.pricing_effective_date,sysdate)))
AND qpatrgrp.list_header_id = qpl.list_header_id
AND qpatrgrp.pricing_phase_id = p_pricing_phase_id
AND qpatrgrp.currency_code = qplines.currency_code
AND qpatrgrp.active_flag = G_YES
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate))
BETWEEN TRUNC(nvl(qpatrgrp.START_DATE_ACTIVE_H,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(nvl(qpatrgrp.END_DATE_ACTIVE_H,nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(NVL(qpatrgrp.START_DATE_ACTIVE_Q,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(qpatrgrp.END_DATE_ACTIVE_Q,nvl(qplines.pricing_effective_date, sysdate)))
--AND qprs.source_system_code = qpatrgrp.source_system_code
--AND qprs.request_type_code = qplines.request_type_code -- check it
AND qprs.APPLICATION_SHORT_NAME = qpatrgrp.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND qppattmp2.line_index = qplines.line_index
AND qppattmp2.pattern_id = qpatrgrp.pattern_id
AND qppattmp2.hash_key = qpatrgrp.hash_key
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0);
SELECT /*+ ORDERED index(QCDT QP_CURRENCY_DETAILS_N2)
index(qplines QP_PREQ_LINES_TMP_U1)
index(qpl QP_LIST_LINES_N17)
index(qppattmp1 QP_NPREQ_LINE_PATRNS_T_N2)
index(qpatrgrp QP_ATTRIBUTE_GROUPS_N1)
index(qppattmp2 QP_NPREQ_LINE_PATRNS_T_N1)
index(qprs qp_pte_source_systems_u2)
l_pat_line_curr_p2 */
DISTINCT
qpl.LIST_HEADER_ID,
qpl.LIST_LINE_ID,
qplines.LINE_INDEX,
qpl.pattern_id QPL_MATCHED_PATTRN_ID,
qpatrgrp.pattern_id AG_MATCHED_PATTRN_ID,
p_pricing_phase_id,
qpl.HASH_KEY QPL_MATCHED_HASH_KEY,
qpatrgrp.HASH_KEY AG_MATCHED_HASH_KEY,
G_STAGE_CACHE_PL_LIN2 STAGE,
G_STATUS_UNCHANGED PRICING_STATUS_CODE,
qpatrgrp.source_system_code,
--decode(bitand(qpl.qualification_ind,2),2,'Y','N') HEADER_QUALS_EXIST_FLAG,
--DECODE(qpatrgrp.EQ_FLAG,'N','Y','N') HEADER_QUALS_EXIST_FLAG,
DECODE(qpatrgrp.EQ_FLAG,'N','Y',DECODE(qpatrgrp.descendents_quals_exist,'Y','Y','N')) HEADER_QUALS_EXIST_FLAG,
-1 qpl_grpng_num,
qpatrgrp.GROUPING_NO ag_grpng_num,
qpl.EQ_FLAG QPL_EQFLAG,
qpatrgrp.EQ_FLAG ATRGRP_EQFLAG,
qplines.VALIDATED_FLAG,
qpl.MODIFIER_LEVEL_CODE,
qpl.null_other_oprt_count qpl_other_oprt_cnt,
qpatrgrp.other_oprt_count ag_other_oprt_cnt,
qpatrgrp.null_other_oprt_count ag_null_othr_oprt_cnt,
--qpl.other_oprt_count,
--qpl.null_other_oprt_count,
qpatrgrp.LIST_TYPE_CODE,
qpatrgrp.ASK_FOR_FLAG,
qpatrgrp.HEADER_LIMIT_EXISTS,
qpatrgrp.LINE_LIMIT_EXISTS,
QCDT.CURRENCY_DETAIL_ID,
QCDT.CURRENCY_HEADER_ID,
QCDT.SELLING_ROUNDING_FACTOR,
qpatrgrp.CURRENCY_CODE BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
qpl.BREAK_UOM_CODE,
qpl.BREAK_UOM_CONTEXT,
qpl.BREAK_UOM_ATTRIBUTE,
QPLINES.CURRENCY_CODE ORDER_CURRENCY,
qpl.PRICE_BREAK_TYPE_CODE,
qpatrgrp.descendents_quals_exist,
qpatrgrp.effective_precedence --bug 12731268
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp1,
qp_list_lines qpl,
qp_secu_attr_groups_v qpatrgrp,
--qp_attribute_groups qpatrgrp,
qp_pte_source_systems qprs,
--qp_price_req_sources_v qprs,
qp_npreq_line_patrns_tmp qppattmp2,
QP_CURRENCY_DETAILS QCDT
WHERE qplines.processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED) --check this condition
AND nvl(qplines.validated_flag,G_NO) = G_NO
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 qppattmp1.line_index = qplines.line_index
AND qpl.pricing_phase_id = p_pricing_phase_id
AND qpl.pattern_id = qppattmp1.pattern_id
AND qpl.hash_key = qppattmp1.hash_key
AND qpl.pte_code = G_PTE_CODE
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(qpl.start_date_active, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qpl.end_date_active, nvl(qplines.pricing_effective_date, sysdate)))
AND qpatrgrp.list_header_id = qpl.list_header_id
AND qpatrgrp.pricing_phase_id = p_pricing_phase_id
AND qpatrgrp.active_flag = G_YES
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate))
BETWEEN TRUNC(nvl(qpatrgrp.START_DATE_ACTIVE_H,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(nvl(qpatrgrp.END_DATE_ACTIVE_H,nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(NVL(qpatrgrp.START_DATE_ACTIVE_Q,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(qpatrgrp.END_DATE_ACTIVE_Q,nvl(qplines.pricing_effective_date, sysdate)))
--AND qprs.source_system_code = qpatrgrp.source_system_code
--AND qprs.request_type_code = qplines.request_type_code -- check it
AND qprs.APPLICATION_SHORT_NAME = qpatrgrp.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND qppattmp2.line_index = qplines.line_index
AND qppattmp2.pattern_id = qpatrgrp.pattern_id
AND qppattmp2.hash_key = qpatrgrp.hash_key
AND qpatrgrp.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND (
(qcdt.curr_attribute_context is null
and not exists
(select /*+ use_nl(qcdt1) LEADING(qcdt1) index(qcdt1 QP_CURRENCY_DETAILS_N2) */ 'x'
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 TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT1.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT1.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
)
)
OR
(qcdt.curr_attribute_context is not null
and qcdt.currency_detail_id =
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3
where qcdt3.to_currency_code = qcdt.to_currency_code
and qcdt3.currency_header_id = qcdt.currency_header_id
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT3.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT3.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
and qcdt3.precedence =
(select /*+ use_nl(qcdt2) LEADING(qcdt2) index(qcdt2 QP_CURRENCY_DETAILS_N2) */
min(qcdt2.precedence)
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 TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT2.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT2.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
))
)
)
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0);
SELECT /*+ ORDERED index(atrgrps QP_ATTRIBUTE_GROUPS_N3) index(qppat QP_NPREQ_LINE_PATRNS_T_N2)
index(QCDT QP_CURRENCY_DETAILS_N2)
index(qprs qp_pte_source_systems_u2)
l_pat_header_cache_curr_p1 */
DISTINCT atrgrps.LIST_HEADER_ID,
atrgrps.LIST_LINE_ID,
qplines.LINE_INDEX,
atrgrps.pattern_id MATCHED_PATTRN_ID,
p_pricing_phase_id,
atrgrps.HASH_KEY MATCHED_HASH_KEY,
G_STAGE_CACHE_PL_HDR STAGE,
G_STATUS_UNCHANGED PRICING_STATUS_CODE,
atrgrps.source_system_code,
atrgrps.HEADER_QUALS_EXIST_FLAG,
atrgrps.GROUPING_NO,
atrgrps.EQ_FLAG,
qplines.VALIDATED_FLAG,
atrgrps.MODIFIER_LEVEL_CODE,
atrgrps.other_oprt_count,
atrgrps.null_other_oprt_count,
atrgrps.LIST_TYPE_CODE,
atrgrps.ASK_FOR_FLAG,
atrgrps.HEADER_LIMIT_EXISTS,
atrgrps.LINE_LIMIT_EXISTS,
QCDT.CURRENCY_DETAIL_ID,
QCDT.CURRENCY_HEADER_ID,
QCDT.SELLING_ROUNDING_FACTOR,
atrgrps.CURRENCY_CODE BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
atrgrps.descendents_quals_exist,
atrgrps.effective_precedence --bug 12731268
FROM (SELECT /*+ dynamic_sampling(1) */ *
FROM qp_npreq_lines_tmp
WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED) --check this condition
AND nvl(validated_flag,G_NO) = G_NO) qplines,
qp_npreq_line_patrns_tmp qppattmp,
qp_secu_attr_groups_v atrgrps,
--qp_attribute_groups atrgrps,
qp_pte_source_systems qprs,
--qp_price_req_sources_v qprs,
QP_CURRENCY_DETAILS QCDT
WHERE qppattmp.line_index = qplines.line_index
AND atrgrps.pricing_phase_id = p_pricing_phase_id
AND atrgrps.list_line_id = -1
AND atrgrps.active_flag = G_YES
AND atrgrps.pattern_id = qppattmp.pattern_id
AND atrgrps.hash_key = qppattmp.hash_key
AND atrgrps.pte_code = G_PTE_CODE
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 atrgrps.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID
AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND (
(qcdt.curr_attribute_context is null
and not exists
(select /*+ use_nl(qcdt1) LEADING(qcdt1) index(qcdt1 QP_CURRENCY_DETAILS_N2) */ 'x'
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 TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT1.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT1.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
)
)
OR
(qcdt.curr_attribute_context is not null
and qcdt.currency_detail_id =
(select qcdt3.currency_detail_id
from qp_currency_details qcdt3
where qcdt3.to_currency_code = qcdt.to_currency_code
and qcdt3.currency_header_id = qcdt.currency_header_id
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT3.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT3.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
and qcdt3.precedence =
(select /*+ use_nl(qcdt2) LEADING(qcdt2) index(qcdt2 QP_CURRENCY_DETAILS_N2) */ min(qcdt2.precedence)
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 TRUNC(nvl(qplines.pricing_effective_date,sysdate)) BETWEEN
TRUNC(NVL(QCDT2.START_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(QCDT2.END_DATE_ACTIVE,nvl(qplines.pricing_effective_date,sysdate)))
))
)
)
--AND qprs.source_system_code = atrgrps.source_system_code
--AND qprs.request_type_code = qplines.request_type_code -- check it
AND qprs.APPLICATION_SHORT_NAME = atrgrps.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND TRUNC(nvl(qplines.pricing_effective_date,sysdate))
BETWEEN TRUNC(nvl(atrgrps.START_DATE_ACTIVE_H,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(nvl(atrgrps.END_DATE_ACTIVE_H,nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(NVL(atrgrps.START_DATE_ACTIVE_Q,nvl(qplines.pricing_effective_date,sysdate)))
AND TRUNC(NVL(atrgrps.END_DATE_ACTIVE_Q,nvl(qplines.pricing_effective_date, sysdate)))
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0);
SELECT /*+ ORDERED index(qpl QP_LIST_LINES_N16)
index(qppat QP_NPREQ_LINE_PATRNS_T_N2)
index(qppqual QP_PREQ_PATRN_QUAL_T_N2)
l_pat_line_cache_curr_p1 */
DISTINCT qpl.LIST_HEADER_ID,
qpl.LIST_LINE_ID,
qplines.LINE_INDEX,
qpl.PATTERN_ID MATCHED_PATTRN_ID,
p_pricing_phase_id,
qpl.HASH_KEY MATCHED_HASH_KEY,
G_STAGE_CACHE_PL_LIN STAGE,
G_STATUS_UNCHANGED PRICING_STATUS_CODE,
qppqual.source_system_code,
decode(bitand(qpl.qualification_ind,2),2,'Y','N') HEADER_QUALS_EXIST_FLAG,
-1 GROUPING_NO,
qpl.EQ_FLAG,
qplines.VALIDATED_FLAG,
qpl.MODIFIER_LEVEL_CODE,
qpl.null_other_oprt_count,
qppqual.list_type_code,
qppqual.ask_for_flag,
qppqual.HEADER_LIMIT_EXISTS, -- HEADER_LIMIT_EXISTS
qppqual.LINE_LIMIT_EXISTS, -- LINE_LIMIT_EXISTS,
qpl.BREAK_UOM_CODE,
qpl.BREAK_UOM_CONTEXT,
qpl.BREAK_UOM_ATTRIBUTE,
QPLINES.CURRENCY_CODE ORDER_CURRENCY,
qppqual.CURRENCY_DETAIL_ID,
qppqual.CURRENCY_HEADER_ID,
qppqual.SELLING_ROUNDING_FACTOR,
qppqual.BASE_CURRENCY_CODE,
qplines.pricing_effective_date,
qpl.PRICE_BREAK_TYPE_CODE,
'N' descendents_quals_exist
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppat,
qp_preq_patrn_qual_tmp qppqual,
qp_list_lines qpl
WHERE qplines.processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
AND nvl(qplines.validated_flag,G_NO) = G_NO
AND qppat.line_index = qplines.line_index
AND qppqual.line_index = qppat.line_index
AND qppqual.pricing_phase_id = p_pricing_phase_id
AND qppqual.pricing_status_code = 'X'
AND qppqual.stage = G_STAGE_CACHE_PL_HDR --check it
AND qpl.pricing_phase_id = p_pricing_phase_id
AND qpl.PATTERN_ID = qppat.PATTERN_ID
AND qpl.hash_key = qppat.HASH_KEY
AND qpl.list_header_id = qppqual.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')
AND qpl.modifier_level_code = qplines.line_type_code -- check it
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(qpl.start_date_active, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qpl.end_date_active, nvl(qplines.pricing_effective_date, sysdate)))
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0);
l_routine VARCHAR2(40) := 'QP_PREQ_GRP.SELECT_PRICE_LIST_LINES_PAT';
qp_debug_util.tstart('SEL_PRICE_LIST_LINES_PAT','Big Search Call Pattern - SELECT_PRICE_LIST_LINES_PAT API', false, true);
engine_debug('Path selected - '||p_search_path);
engine_debug('Entering into procedure select_price_list_lines_pat');
l_list_header_id_tbl.DELETE;
l_list_line_id_tbl.DELETE;
l_line_index_tbl.DELETE;
l_matched_pattrn_id_tbl.DELETE;
l_ag_matched_pat_id_tbl.DELETE;
l_pricing_phase_id_tbl.DELETE;
l_matched_hash_key_tbl.DELETE;
l_ag_mtchd_hash_key_tbl.DELETE;
l_stage_tbl.DELETE;
l_pricing_status_code_tbl.DELETE;
l_ssc.DELETE;
l_header_quals_exist_flag.DELETE;
l_grouping_no.DELETE;
l_ag_grpng_no.DELETE;
l_eq_flag.DELETE;
l_ag_eq_flag.DELETE;
l_validated_flag.DELETE;
l_modf_lvl_code.DELETE;
l_other_oprt_count.DELETE;
l_ag_othr_oprt_cnt.DELETE;
l_null_other_oprt_count.DELETE;
l_list_type_code.DELETE;
l_ask_for_flag.DELETE;
l_hdr_lmt_exists.DELETE;
l_line_lmt_exists.DELETE;
l_curr_det_id.DELETE;
l_curr_hdr_id.DELETE;
L_SELLNG_ROUND_FTR.DELETE;
l_base_curr_code.DELETE;
l_prcng_effctve_dt.DELETE;
l_brk_uom_code.DELETE;
l_brk_uom_ctxt.DELETE;
l_brk_uom_attr.DELETE;
l_order_curr.DELETE;
l_PRICE_BREAK_TYPE_CODE.DELETE;
l_descnt_quals_exist.DELETE;
l_qual_effective_precedence.delete; --bug 12731268
INSERT
INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
validated_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
BREAK_UOM_CODE,
BREAK_UOM_CONTEXT,
BREAK_UOM_ATTRIBUTE,
ORDER_CURRENCY,
CURRENCY_DETAIL_ID,
CURRENCY_HEADER_ID,
SELLING_ROUNDING_FACTOR,
BASE_CURRENCY_CODE,
pricing_effective_date,
PRICE_BREAK_TYPE_CODE,
qualifier_precedence
)
SELECT DISTINCT l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_validated_flag(i),
l_modf_lvl_code(i),
l_other_oprt_count(i),
l_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_brk_uom_code(i),
l_brk_uom_ctxt(i),
l_brk_uom_attr(i),
l_order_curr(i),
l_curr_det_id(i),
l_curr_hdr_id(i),
L_SELLNG_ROUND_FTR(i),
l_base_curr_code(i),
l_prcng_effctve_dt(i),
l_PRICE_BREAK_TYPE_CODE(i),
l_qual_effective_precedence(i) --bug 12731268
FROM dual;
INSERT INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
pricing_phase_id,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
validated_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
descendents_quals_exist,
qualifier_precedence, --bug 12731268
matched_pattrn_id, -- bug 10216430
matched_hash_key -- bug 10216430
)
SELECT DISTINCT l_list_header_id_tbl(i),
-1, -- List line id,
l_line_index_tbl(i),
l_pricing_phase_id_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i), -- Header Quals Exist,
l_ag_grpng_no(i),
l_ag_eq_flag(i),
l_validated_flag(i),
l_modf_lvl_code(i),
l_ag_othr_oprt_cnt(i),
l_null_other_oprt_count(i),
l_descnt_quals_exist(i),
l_qual_effective_precedence(i), --bug 12731268
l_ag_matched_pat_id_tbl(i), -- bug 10216430
l_ag_mtchd_hash_key_tbl(i) -- bug 10216430
FROM dual
WHERE l_ag_eq_flag(i) = 'N'
OR l_descnt_quals_exist(i) = 'Y'
OR l_ag_mtchd_hash_key_tbl(i)<>'BLIND'; -- bug 10216430
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_TCA
WHERE pricing_status_code = g_status_unchanged
AND a.descendents_quals_exist = 'Y'
and a.pricing_phase_id = p_pricing_phase_id
and a.stage = G_STAGE_CACHE_PL_LIN2
AND EXISTS (
SELECT 1
FROM qp_qualifiers b, qp_npreq_line_attrs_tmp c
WHERE b.list_header_id = a.list_header_id
AND b.list_line_id = a.list_line_id
AND (b.qualifier_grouping_no = a.grouping_no
or
b.qualifier_grouping_no = -1
)
AND b.qualify_hier_descendents_flag = 'N'
AND c.segment_id = b.segment_id
AND c.line_index = a.line_index
AND c.derived_qualifier_flag = 'Y');
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_LINE
WHERE pricing_phase_id = p_pricing_phase_id
AND pricing_status_code = g_status_unchanged
AND list_line_id <> -1
AND nvl(header_quals_exist_flag, 'N') = 'Y'
and a.stage = G_STAGE_CACHE_PL_LIN2
AND NOT EXISTS
(SELECT /*+ index(b QP_PREQ_PATRN_QUAL_T_N2) */ 'x'
FROM qp_preq_patrn_qual_tmp b
WHERE b.list_header_id = a.list_header_id
AND b.line_index = a.line_index
AND b.list_line_id = -1
AND b.pricing_phase_id = a.pricing_phase_id
AND pricing_status_code = g_status_unchanged
and b.stage = G_STAGE_CACHE_PL_LIN2);
l_list_header_id_tbl.DELETE;
l_list_line_id_tbl.DELETE;
l_line_index_tbl.DELETE;
l_matched_pattrn_id_tbl.DELETE;
l_pricing_phase_id_tbl.DELETE;
l_stage_tbl.DELETE;
l_matched_hash_key_tbl.DELETE;
l_pricing_status_code_tbl.DELETE;
l_ssc.DELETE;
l_header_quals_exist_flag.DELETE;
l_grouping_no.DELETE;
l_eq_flag.DELETE;
l_validated_flag.DELETE;
l_modf_lvl_code.DELETE;
l_other_oprt_count.DELETE;
l_null_other_oprt_count.DELETE;
l_list_type_code.DELETE;
l_ask_for_flag.DELETE;
l_hdr_lmt_exists.DELETE;
l_line_lmt_exists.DELETE;
l_curr_det_id.DELETE;
l_curr_hdr_id.DELETE;
L_SELLNG_ROUND_FTR.DELETE;
l_base_curr_code.DELETE;
l_prcng_effctve_dt.DELETE;
l_PRICE_BREAK_TYPE_CODE.DELETE;
l_descnt_quals_exist.DELETE;
l_qual_effective_precedence.delete; --bug 12731268
forall i IN 1 .. l_list_header_id_tbl.COUNT INSERT
INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
validated_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
CURRENCY_DETAIL_ID,
CURRENCY_HEADER_ID,
SELLING_ROUNDING_FACTOR,
BASE_CURRENCY_CODE,
pricing_effective_date,--,
--PRICE_BREAK_TYPE_CODE
qualifier_precedence --bug 12731268
)
VALUES(l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_validated_flag(i),
l_modf_lvl_code(i),
l_other_oprt_count(i),
l_null_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_curr_det_id(i),
l_curr_hdr_id(i),
L_SELLNG_ROUND_FTR(i),
l_base_curr_code(i),
l_prcng_effctve_dt(i),--,
--l_PRICE_BREAK_TYPE_CODE(i)
l_qual_effective_precedence(i) --bug 12731268
);
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_TCA
WHERE pricing_status_code = g_status_unchanged
AND a.descendents_quals_exist = 'Y'
and a.pricing_phase_id = p_pricing_phase_id
and a.stage = G_STAGE_CACHE_PL_HDR
AND EXISTS (
SELECT 1
FROM qp_qualifiers b, qp_npreq_line_attrs_tmp c
WHERE b.list_header_id = a.list_header_id
AND b.list_line_id = a.list_line_id
AND (b.qualifier_grouping_no = a.grouping_no
or
b.qualifier_grouping_no = -1
)
AND b.qualify_hier_descendents_flag = 'N'
AND c.segment_id = b.segment_id
AND c.line_index = a.line_index
AND c.derived_qualifier_flag = 'Y');
l_list_header_id_tbl.DELETE;
l_list_line_id_tbl.DELETE;
l_line_index_tbl.DELETE;
l_matched_pattrn_id_tbl.DELETE;
l_pricing_phase_id_tbl.DELETE;
l_stage_tbl.DELETE;
l_matched_hash_key_tbl.DELETE;
l_pricing_status_code_tbl.DELETE;
l_ssc.DELETE;
l_header_quals_exist_flag.DELETE;
l_grouping_no.DELETE;
l_eq_flag.DELETE;
l_validated_flag.DELETE;
l_modf_lvl_code.DELETE;
l_other_oprt_count.DELETE;
l_null_other_oprt_count.DELETE;
l_list_type_code.DELETE;
l_ask_for_flag.DELETE;
l_hdr_lmt_exists.DELETE;
l_line_lmt_exists.DELETE;
l_brk_uom_code.DELETE;
l_brk_uom_ctxt.DELETE;
l_brk_uom_attr.DELETE;
l_order_curr.DELETE;
l_curr_det_id.DELETE;
l_curr_hdr_id.DELETE;
L_SELLNG_ROUND_FTR.DELETE;
l_base_curr_code.DELETE;
l_prcng_effctve_dt.DELETE;
l_PRICE_BREAK_TYPE_CODE.DELETE;
l_descnt_quals_exist.DELETE;
forall i IN 1 .. l_list_header_id_tbl.COUNT INSERT
INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
validated_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
BREAK_UOM_CODE,
BREAK_UOM_CONTEXT,
BREAK_UOM_ATTRIBUTE,
ORDER_CURRENCY,
CURRENCY_DETAIL_ID,
CURRENCY_HEADER_ID,
SELLING_ROUNDING_FACTOR,
BASE_CURRENCY_CODE,
pricing_effective_date,
PRICE_BREAK_TYPE_CODE,
descendents_quals_exist
)
VALUES(l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_validated_flag(i),
l_modf_lvl_code(i),
l_null_other_oprt_count(i),
l_null_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_brk_uom_code(i),
l_brk_uom_ctxt(i),
l_brk_uom_attr(i),
l_order_curr(i),
l_curr_det_id(i),
l_curr_hdr_id(i),
L_SELLNG_ROUND_FTR(i),
l_base_curr_code(i),
l_prcng_effctve_dt(i),
l_PRICE_BREAK_TYPE_CODE(i),
l_descnt_quals_exist(i)
);
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_TCA
WHERE pricing_status_code = g_status_unchanged
AND a.descendents_quals_exist = 'Y'
and a.pricing_phase_id = p_pricing_phase_id
and a.stage = G_STAGE_CACHE_PL_LIN
AND EXISTS (
SELECT 1
FROM qp_qualifiers b, qp_npreq_line_attrs_tmp c
WHERE b.list_header_id = a.list_header_id
AND b.list_line_id = a.list_line_id
AND (b.qualifier_grouping_no = a.grouping_no
or
b.qualifier_grouping_no = -1
)
AND b.qualify_hier_descendents_flag = 'N'
AND c.segment_id = b.segment_id
AND c.line_index = a.line_index
AND c.derived_qualifier_flag = 'Y');
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;
qp_debug_util.tstart('BIG_SRCH_UPD_REQ_LIN_STATUS','Updating Request Lines Status - Update_Request_Line_Status API');
Update_Request_Line_Status(p_control_rec,'SUCCESS',p_freeze_override_flag,l_return_status,l_status_text); --[julin/4708044]
Update_Request_Line_Status(p_control_rec,'FAILURE',p_freeze_override_flag,x_status_code,x_status_text); --[juiln/4708044]
END select_price_list_lines_pat;
|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
-- bug 9210308 added index hint for index QP_LIST_LINES_PK
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(QPPROD QP_PRICING_ATTRIBUTES_N5)
INDEX(QPQ QP_QUALIFIERS_N4)
INDEX(QPL QP_LIST_LINES_PK)
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(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, TRUNC(qplines.pricing_effective_date)) and
nvl(qpq.end_date_active,TRUNC(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(QPPROD QP_PRICING_ATTRIBUTES_N5)
INDEX(QPQ QP_QUALIFIERS_N5)
INDEX(QPL QP_LIST_LINES_PK)
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(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, TRUNC(qplines.pricing_effective_date)) and
nvl(qpq.end_date_active,TRUNC(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(QPPROD QP_PRICING_ATTRIBUTES_N5)
INDEX(QPQ QP_QUALIFIERS_N6)
INDEX(QPL QP_LIST_LINES_PK)
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(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, TRUNC(qplines.pricing_effective_date)) and
nvl(qpq.end_date_active,TRUNC(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(QPPROD QP_PRICING_ATTRIBUTES_N5)
INDEX(QPQ QP_QUALIFIERS_N4)
INDEX(QPL QP_LIST_LINES_PK)
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(TRUNC(qplines.pricing_effective_date),trunc(sysdate)) between
nvl(trunc(qcdt.start_date_active),TRUNC(qplines.pricing_effective_date)) and
nvl(trunc(qcdt.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt1.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt1.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt2.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt2.end_date_active),TRUNC(qplines.pricing_effective_date))
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, TRUNC(qplines.pricing_effective_date)) and
nvl(qpq.end_date_active,TRUNC(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(QPPROD QP_PRICING_ATTRIBUTES_N5)
INDEX(QPQ QP_QUALIFIERS_N5)
INDEX(QPL QP_LIST_LINES_PK)
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(TRUNC(qplines.pricing_effective_date),trunc(sysdate)) between
nvl(trunc(qcdt.start_date_active),TRUNC(qplines.pricing_effective_date)) and
nvl(trunc(qcdt.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt1.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt1.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt2.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt2.end_date_active),TRUNC(qplines.pricing_effective_date))
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, TRUNC(qplines.pricing_effective_date)) and
nvl(qpq.end_date_active,TRUNC(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(QPPROD QP_PRICING_ATTRIBUTES_N5)
INDEX(QPQ QP_QUALIFIERS_N6)
INDEX(QPL QP_LIST_LINES_PK)
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(TRUNC(qplines.pricing_effective_date),trunc(sysdate)) between
nvl(trunc(qcdt.start_date_active),TRUNC(qplines.pricing_effective_date)) and
nvl(trunc(qcdt.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt1.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt1.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt2.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt2.end_date_active),TRUNC(qplines.pricing_effective_date))
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, TRUNC(qplines.pricing_effective_date)) and
nvl(qpq.end_date_active,TRUNC(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(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, TRUNC(qplines.pricing_effective_date)) and
nvl(qpq.end_date_active,TRUNC(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 IN ('NOT =',G_OPERATOR_BETWEEN)) -- 8463623
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(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, TRUNC(qplines.pricing_effective_date)) and
nvl(qpq.end_date_active,TRUNC(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 IN ('NOT =',G_OPERATOR_BETWEEN)) -- 8463623
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(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, TRUNC(qplines.pricing_effective_date)) and
nvl(qpq.end_date_active,TRUNC(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 IN ('NOT =',G_OPERATOR_BETWEEN)) -- 8463623
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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt1.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt1.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt2.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt2.end_date_active),TRUNC(qplines.pricing_effective_date))
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, TRUNC(qplines.pricing_effective_date)) and
nvl(qpq.end_date_active,TRUNC(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 IN ('NOT =',G_OPERATOR_BETWEEN)) -- 8463623
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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt1.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt1.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt2.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt2.end_date_active),TRUNC(qplines.pricing_effective_date))
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, TRUNC(qplines.pricing_effective_date)) and
nvl(qpq.end_date_active,TRUNC(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 IN ('NOT =',G_OPERATOR_BETWEEN)) -- 8463623
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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt1.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt1.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt2.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt2.end_date_active),TRUNC(qplines.pricing_effective_date))
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(qplines.pricing_effective_date))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qpq.start_date_active, TRUNC(qplines.pricing_effective_date)) and
nvl(qpq.end_date_active,TRUNC(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 IN ('NOT =',G_OPERATOR_BETWEEN)) -- 8463623
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) index(QPL QP_LIST_LINES_PK) 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(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(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) INDEX(QPL QP_LIST_LINES_PK) 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
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 (qplines.price_flag = G_YES OR
(qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND qpl.qualification_ind = QP_PREQ_GRP.G_YES_PROD_IND
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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt1.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt1.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt2.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt2.end_date_active),TRUNC(qplines.pricing_effective_date))
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(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.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(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date)) and
nvl(TRUNC(qpl.end_date_active),TRUNC(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 IN ('NOT =',G_OPERATOR_BETWEEN)) --8463623
--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 qpl.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_IND
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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt.start_date_active),TRUNC(qplines.pricing_effective_date)) and
nvl(trunc(qcdt.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt1.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt1.end_date_active),TRUNC(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 TRUNC(qplines.pricing_effective_date) between
nvl(trunc(qcdt2.start_date_active),TRUNC(qplines.pricing_effective_date))
and nvl(trunc(qcdt2.end_date_active),TRUNC(qplines.pricing_effective_date))
)))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)) between
nvl(qph.start_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE))) and
nvl(qph.end_date_active,nvl(TRUNC(qplines.pricing_effective_date),TRUNC(SYSDATE)))
AND TRUNC(qplines.pricing_effective_date) between
nvl(TRUNC(qpl.start_date_active), TRUNC(qplines.pricing_effective_date))
and nvl(TRUNC(qpl.end_date_active),TRUNC(qplines.pricing_effective_date))
AND qpl.pricing_phase_id = p_pricing_phase_id
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 IN ('NOT =',G_OPERATOR_BETWEEN)) -- 8463623
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;
qp_debug_util.tstart('INSERT_LDETS_PRICE_LIST_MULT_NON_MULTI','Inserting into ldets INSERT_LDETS_PRICE_LIST_MULT_NON_MULTI');
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
);
qp_debug_util.tstop('INSERT_LDETS_PRICE_LIST_MULT_NON_MULTI');
qp_debug_util.tstart('INSERT_PRICE_LIST_ATTRS','Inserting into line attrs INSERT_PRICE_LIST_ATTRS');
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);
qp_debug_util.tstop('INSERT_PRICE_LIST_ATTRS');
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
,Nvl(QPLT.ROUNDING_FACTOR,QPLT.SELLING_ROUNDING_FACTOR) ROUNDING_FACTOR --10093463
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
,Nvl(QPLT.ROUNDING_FACTOR,QPLT.SELLING_ROUNDING_FACTOR) ROUNDING_FACTOR --10093463
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_OPR_CALC_CODE_TBL_D.delete; --bug#12916970
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
,OPERAND_CALCULATION_CODE = G_OPR_CALC_CODE_TBL_D(O) --bug#12916970
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
,OPERAND_CALCULATION_CODE = G_OPR_CALC_CODE_TBL_D(O) -- bug#12916970
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;
UPDATE
qp_npreq_line_attrs_tmp /*+ index(attr qp_preq_line_attrs_tmp_n9) */attr
SET attr.segment_id = (
SELECT qps.segment_id
FROM qp_prc_contexts_b qpc
, qp_segments_b qps
, qp_pte_segments qpps
WHERE attr.context = qpc.prc_context_code
AND qpc.prc_context_id = qps.prc_context_id
AND qps.segment_mapping_column = attr.attribute
AND qps.segment_id = qpps.segment_id
AND NVL(qpps.used_in_search, 'N') = 'Y'
AND ROWNUM < 2
)
WHERE line_index BETWEEN lower_limit AND upper_limit;
/*UPDATE
qp_npreq_line_attrs_tmp attr
SET attr.segment_id = (
SELECT qps.segment_id
FROM qp_prc_contexts_b qpc
, qp_segments_b qps
, qp_pte_segments qpps
WHERE attr.context = qpc.prc_context_code
AND qpc.prc_context_id = qps.prc_context_id
AND qps.segment_mapping_column = attr.attribute
AND qps.segment_id = qpps.segment_id
AND NVL(qpps.used_in_search, 'N') = 'Y'
AND ROWNUM < 2
); */
/*UPDATE qp_npreq_line_attrs_tmp
SET mutlival_flag = 'M'
WHERE (line_index, segment_id) IN (
SELECT line_index, segment_id
FROM qp_npreq_line_attrs_tmp
WHERE segment_id IS NOT NULL
GROUP BY line_index, segment_id
HAVING count(segment_id) > 1
);*/
engine_debug(l_routine || 'Updated segment_id of ' || SQL%ROWCOUNT || ' rows of qp_npreq_line_attrs_tmp');
QP_DEBUG_UTIL.tstart('insert_patrn_phases', 'insert_patrn_phases');
INSERT INTO qp_npreq_patrn_phases_tmp(pattern_id, segment_id, pricing_phase_id, segment_index, segment_count)
SELECT qp.pattern_id,
qp.segment_id,
p_pricing_phase_id,
qp.segment_index,
qp.segment_count
FROM qp_patterns qp,
qp_pattern_phases qpp
WHERE qpp.pattern_id = qp.pattern_id
AND qpp.pricing_phase_id = p_pricing_phase_id
AND NVL(qpp.end_date_active,G_MIN_PRICING_DATE) >= G_MIN_PRICING_DATE
AND NVL(qpp.start_date_active, G_MAX_PRICING_DATE) <= G_MAX_PRICING_DATE
AND qpp.active_flag = 'Y'
AND NOT EXISTS (
SELECT pattern_id
FROM qp_npreq_patrn_phases_tmp qp1
WHERE qp.pattern_id = qp1.pattern_id
AND ROWNUM < 2
);
QP_DEBUG_UTIL.tstop('insert_patrn_phases');
engine_debug(l_routine || 'inserted ' || SQL%ROWCOUNT || ' rows into qp_npreq_patrn_phases_tmp'
|| ' pricing_phase_id = ' || p_pricing_phase_id);
qp_debug_util.tstart('insert_line_patrns', 'insert_line_patrns');
INSERT INTO qp_npreq_line_patrns_tmp(line_index, pattern_id, hash_key)
SELECT /*+ ORDERED index(attr qp_preq_line_attrs_tmp_n9) */
attr.line_index,
qpp.pattern_id,
sys_connect_by_path(attr.value_from, '|') hash_key
FROM (SELECT /*+ index(qpp1 qp_pattern_phases_n1) */ *
FROM qp_npreq_patrn_phases_tmp qpp1
WHERE qpp1.pricing_phase_id = p_pricing_phase_id) qpp,
(SELECT *
FROM qp_npreq_line_attrs_tmp
WHERE line_index BETWEEN lower_limit AND upper_limit) attr
WHERE attr.segment_id = qpp.segment_id
AND attr.segment_id IS NOT NULL
AND level = qpp.segment_count
START WITH qpp.segment_index = 1
CONNECT BY PRIOR qpp.segment_index = qpp.segment_index - 1
AND PRIOR qpp.pattern_id = qpp.pattern_id
AND PRIOR attr.line_index = attr.line_index;
INSERT INTO qp_npreq_line_patrns_tmp(line_index, pattern_id, hash_key)
SELECT /*+ ORDERED index(attr qp_preq_line_attrs_tmp_n9) */
/* attr.line_index,
qpp.pattern_id,
sys_connect_by_path(attr.value_from, '|') hash_key
FROM (SELECT /*+ index(qpp1 qp_pattern_phases_n1) */ --*
/* FROM qp_npreq_patrn_phases_tmp qpp1
WHERE qpp1.pricing_phase_id = p_pricing_phase_id) qpp,
qp_npreq_line_attrs_tmp attr
WHERE attr.segment_id = qpp.segment_id
AND attr.segment_id IS NOT NULL
AND level = qpp.segment_count
START WITH qpp.segment_index = 1
CONNECT BY PRIOR qpp.segment_index = qpp.segment_index - 1
AND PRIOR qpp.pattern_id = qpp.pattern_id
AND PRIOR attr.line_index = attr.line_index;
Dbms_Output.put_line('inserted = ' || SQL%ROWCOUNT);
QP_DEBUG_UTIL.tstop('insert_line_patrns');
engine_debug(l_routine || 'inserted ' || SQL%ROWCOUNT || ' rows to qp_npreq_line_patrns_tmp'
|| ' pricing_phase_id = ' || p_pricing_phase_id);
IF NVL(G_PATRNS_TWO_THREE_INSERTED, 'N') = 'N'
THEN
IF l_debug = FND_API.G_TRUE
THEN
engine_debug(l_routine || 'inseting pattern_id -2 and -3');
INSERT INTO qp_npreq_line_patrns_tmp(line_index, pattern_id, hash_key)
SELECT line_index, -2, 'BLIND'
FROM qp_npreq_lines_tmp;
INSERT INTO qp_npreq_line_patrns_tmp(line_index, pattern_id, hash_key)
SELECT line_index, -3, 'BLIND'
FROM qp_npreq_lines_tmp;
INSERT INTO qp_npreq_line_patrns_tmp(line_index, pattern_id, hash_key)
SELECT line_index, -1, 'NOEQUALS'
FROM qp_npreq_lines_tmp;
G_PATRNS_TWO_THREE_INSERTED := 'Y';
PROCEDURE Select_modifiers_patrn(
p_pricing_phase_id IN NUMBER,
p_freeze_override_flag IN VARCHAR2,
p_search_path IN NUMBER,
x_status_code OUT nocopy VARCHAR2,
x_status_text OUT nocopy VARCHAR2) AS
/* Header cache cursor*/
CURSOR l_header_cache_cur(p_pricing_phase_id NUMBER) IS
SELECT
/*+ ORDERED index(atrgrps QP_ATTRIBUTE_GROUPS_N1)
index(qplines QP_PREQ_LINES_TMP_U1)
index(qprs qp_pte_source_systems_u2)
l_header_cache_cur */
DISTINCT atrgrps.list_header_id,
atrgrps.list_line_id list_line_id,
qplines.line_index line_index,
qppattmp.pattern_id matched_pattrn_id,
p_pricing_phase_id,
qppattmp.hash_key matched_hash_key,
G_STAGE_CACHE_MOD_HDR stage,
atrgrps.source_system_code,
G_STATUS_UNCHANGED,
atrgrps.header_quals_exist_flag,
atrgrps.grouping_no,
atrgrps.eq_flag,
atrgrps.MODIFIER_LEVEL_CODE,
atrgrps.other_oprt_count,
atrgrps.null_other_oprt_count,
atrgrps.LIST_TYPE_CODE,
atrgrps.ASK_FOR_FLAG,
atrgrps.HEADER_LIMIT_EXISTS,
atrgrps.LINE_LIMIT_EXISTS,
atrgrps.descendents_quals_exist
FROM qp_list_header_phases qplhp,
qp_secu_attr_groups_v atrgrps,
--qp_attribute_groups atrgrps,
qp_npreq_line_patrns_tmp qppattmp,
qp_npreq_lines_tmp qplines,
qp_pte_source_systems qprs
--qp_price_req_sources_v qprs
WHERE qplhp.pricing_phase_id = p_pricing_phase_id
AND atrgrps.list_header_id = qplhp.list_header_id
AND atrgrps.list_line_id = -1 -- Filter
AND atrgrps.pte_code = G_PTE_CODE
AND qppattmp.pattern_id = atrgrps.pattern_id -- Match
AND qppattmp.hash_key = atrgrps.hash_key -- Match
AND qppattmp.line_index = qplines.line_index --Join
AND atrgrps.list_type_code NOT IN('PRL', 'AGR') -- Filter
AND atrgrps.active_flag = 'Y' -- Filter
--AND atrgrps.source_system_code = qprs.source_system_code --join
--AND qprs.request_type_code = qp_preq_grp.g_request_type_code
AND qprs.APPLICATION_SHORT_NAME = atrgrps.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND(qplines.price_flag = qp_preq_grp.g_yes
OR(qplines.price_flag = qp_preq_grp.g_phase
AND p_freeze_override_flag = qp_preq_grp.g_yes))
AND( qplines.unit_price IS NOT NULL
OR qplines.usage_pricing_type = qp_preq_grp.g_authoring_type
OR qplines.line_type_code = qp_preq_grp.g_order_level) --AND qplines.line_type_code <> 'ORDER' -- needs to check
AND atrgrps.pricing_phase_id = -1
AND( (atrgrps.currency_code IS NOT NULL
AND atrgrps.currency_code = qp_preq_grp.g_currency_code)
OR atrgrps.currency_code IS NULL)
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(atrgrps.start_date_active_h, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(atrgrps.end_date_active_h, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qplines.start_date_active_first, sysdate))
BETWEEN TRUNC(nvl(atrgrps.start_date_active_first, nvl(qplines.start_date_active_first, sysdate)))
AND TRUNC(nvl(atrgrps.end_date_active_first, nvl(qplines.start_date_active_first, sysdate)))
AND TRUNC(nvl(qplines.start_date_active_second, sysdate))
BETWEEN TRUNC(nvl(atrgrps.start_date_active_second, nvl(qplines.start_date_active_second, sysdate)))
AND TRUNC(nvl(atrgrps.end_date_active_second, nvl(qplines.start_date_active_second, sysdate)))
AND nvl(qplines.active_date_first_type, 'X') = nvl(atrgrps.active_date_first_type, nvl(qplines.active_date_first_type, 'X'))
AND nvl(qplines.active_date_second_type, 'X') = nvl(atrgrps.active_date_second_type, nvl(qplines.active_date_second_type, 'X'))
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(atrgrps.start_date_active_q, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(atrgrps.end_date_active_q, nvl(qplines.pricing_effective_date, sysdate)))
AND((atrgrps.ask_for_flag = qp_preq_grp.g_yes
AND EXISTS
(SELECT
/*+ index(la QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/pricebook/backport]
FROM qp_npreq_line_attrs_tmp la -- will check whether this can be moved to shaneeds code
WHERE attribute_type = G_QUALIFIER_TYPE
AND pricing_status_code = qp_preq_grp.g_status_unchanged
AND validated_flag = qp_preq_grp.g_no
AND list_header_id = atrgrps.list_header_id
AND line_index = qplines.line_index)
)
OR atrgrps.ask_for_flag = qp_preq_grp.g_no);
SELECT
/*+ ORDERED index(atrgrps QP_ATTRIBUTE_GROUPS_N3)
index(qppattmp QP_NPREQ_LINE_PATRNS_T_N2)
index(intmdt QP_PREQ_PATRN_QUAL_T_N2)
l_line_cache_cur */
DISTINCT atrgrps.list_header_id,
atrgrps.list_line_id list_line_id,
qplines.line_index line_index,
qppattmp.pattern_id matched_pattrn_id,
p_pricing_phase_id,
qppattmp.hash_key matched_hash_key,
G_STAGE_CACHE_MOD_LIN stage,
atrgrps.source_system_code,
G_STATUS_UNCHANGED,
atrgrps.header_quals_exist_flag,
atrgrps.grouping_no,
atrgrps.eq_flag,
atrgrps.MODIFIER_LEVEL_CODE,
atrgrps.other_oprt_count,
atrgrps.null_other_oprt_count,
atrgrps.LIST_TYPE_CODE,
atrgrps.ASK_FOR_FLAG,
atrgrps.HEADER_LIMIT_EXISTS,
atrgrps.LINE_LIMIT_EXISTS,
atrgrps.descendents_quals_exist,
atrgrps.PRICE_BREAK_TYPE_CODE
FROM qp_npreq_lines_tmp qplines,
qp_preq_patrn_qual_tmp intmdt,
qp_npreq_line_patrns_tmp qppattmp,
qp_attribute_groups atrgrps
WHERE intmdt.pricing_phase_id = p_pricing_phase_id
AND atrgrps.list_header_id = intmdt.list_header_id
AND intmdt.stage = G_STAGE_CACHE_MOD_HDR
AND atrgrps.list_line_id <> -1 -- Filter
AND atrgrps.pricing_phase_id = p_pricing_phase_id
AND qppattmp.pattern_id = atrgrps.pattern_id -- Match
AND qppattmp.hash_key = atrgrps.hash_key -- Match
AND qplines.line_index = qppattmp.line_index --Join
AND intmdt.line_index = qplines.line_index
AND intmdt.pricing_status_code=QP_PREQ_GRP.G_STATUS_UNCHANGED
AND(atrgrps.modifier_level_code = qplines.line_type_code
OR (atrgrps.modifier_level_code = qp_preq_grp.g_line_group and
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES))
AND((atrgrps.currency_code IS NOT NULL
AND atrgrps.currency_code = qp_preq_grp.g_currency_code)
OR atrgrps.currency_code IS NULL) -- optional currency
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(atrgrps.start_date_active_l, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(atrgrps.end_date_active_l, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(atrgrps.start_date_active_q, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(atrgrps.end_date_active_q, nvl(qplines.pricing_effective_date, sysdate)))
AND (qplines.priced_uom_code IS NULL
OR qplines.priced_uom_code = nvl(atrgrps.product_uom_code, qplines.priced_uom_code)
)
AND((atrgrps.ask_for_flag = qp_preq_grp.g_yes
AND EXISTS
(SELECT
/*+ index(la QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/pricebook/backport]
FROM qp_npreq_line_attrs_tmp la -- will check whether this can be moved to shaneeds code
WHERE attribute_type = G_QUALIFIER_TYPE
AND pricing_status_code = qp_preq_grp.g_status_unchanged
AND validated_flag = qp_preq_grp.g_no
AND list_header_id = atrgrps.list_header_id
AND line_index = qplines.line_index)
)
OR atrgrps.ask_for_flag = qp_preq_grp.g_no)
AND (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES AND
atrgrps.list_line_type_code NOT IN (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE) AND
atrgrps.automatic_flag = 'Y'
OR
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES);
SELECT
---This union all is to fetch all the lines whose header_quals_exist_flag is N(means pure no header quals)
+ ORDERED index(atrgrps QP_ATTRIBUTE_GROUPS_N3) index(qppattmp QP_NPREQ_LINE_PATRNS_T_N2) l_line_cache_cur */
/* DISTINCT atrgrps.list_header_id,
atrgrps.list_line_id list_line_id,
qplines.line_index line_index,
qppattmp.pattern_id matched_pattrn_id,
p_pricing_phase_id,
qppattmp.hash_key matched_hash_key,
G_STAGE_CACHE_MOD_LIN stage,
atrgrps.source_system_code,
G_STATUS_UNCHANGED,
atrgrps.header_quals_exist_flag,
atrgrps.grouping_no,
atrgrps.eq_flag,
atrgrps.MODIFIER_LEVEL_CODE,
atrgrps.other_oprt_count,
atrgrps.null_other_oprt_count,
atrgrps.LIST_TYPE_CODE,
atrgrps.ASK_FOR_FLAG,
atrgrps.HEADER_LIMIT_EXISTS,
atrgrps.LINE_LIMIT_EXISTS,
atrgrps.descendents_quals_exist,
atrgrps.PRICE_BREAK_TYPE_CODE
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp,
qp_attribute_groups atrgrps
WHERE atrgrps.pricing_phase_id = p_pricing_phase_id
AND nvl(atrgrps.header_quals_exist_flag, 'N') = 'N'
AND qppattmp.pattern_id = atrgrps.pattern_id -- Match
AND qppattmp.hash_key = atrgrps.hash_key -- Match
AND qplines.line_index = qppattmp.line_index --Join
AND atrgrps.list_type_code NOT IN('PRL', 'AGR') -- Filter
AND atrgrps.active_flag = 'Y' -- Filter
AND(atrgrps.modifier_level_code = qplines.line_type_code
OR (atrgrps.modifier_level_code = qp_preq_grp.g_line_group and
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES))
AND( qplines.unit_price IS NOT NULL
OR qplines.usage_pricing_type = qp_preq_grp.g_authoring_type
OR qplines.line_type_code = qp_preq_grp.g_order_level
)
AND(qplines.price_flag = qp_preq_grp.g_yes
OR(qplines.price_flag = qp_preq_grp.g_phase
AND p_freeze_override_flag = qp_preq_grp.g_yes)
)
AND( (atrgrps.currency_code IS NOT NULL
AND atrgrps.currency_code = qp_preq_grp.g_currency_code)
OR atrgrps.currency_code IS NULL) -- optional currency
AND nvl(qplines.pricing_effective_date, TRUNC(sysdate))
BETWEEN nvl(atrgrps.start_date_active_h, nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
AND nvl(atrgrps.end_date_active_h, nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
AND nvl(qplines.start_date_active_first, TRUNC(sysdate))
BETWEEN nvl(atrgrps.start_date_active_first, nvl(qplines.start_date_active_first, TRUNC(sysdate)))
AND nvl(atrgrps.end_date_active_first, nvl(qplines.start_date_active_first, TRUNC(sysdate)))
AND nvl(qplines.start_date_active_second, TRUNC(sysdate))
BETWEEN nvl(atrgrps.start_date_active_second, nvl(qplines.start_date_active_second, TRUNC(sysdate)))
AND nvl(atrgrps.end_date_active_second, nvl(qplines.start_date_active_second, TRUNC(sysdate)))
AND nvl(qplines.active_date_first_type, 'X') = nvl(atrgrps.active_date_first_type, nvl(qplines.active_date_first_type, 'X'))
AND nvl(qplines.active_date_second_type, 'X') = nvl(atrgrps.active_date_second_type, nvl(qplines.active_date_second_type, 'X'))
AND nvl(qplines.pricing_effective_date, TRUNC(sysdate))
BETWEEN nvl(TRUNC(atrgrps.start_date_active_l), qplines.pricing_effective_date)
AND nvl(TRUNC(atrgrps.end_date_active_l), qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date, TRUNC(sysdate))
BETWEEN nvl(atrgrps.start_date_active_q, nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
AND nvl(atrgrps.end_date_active_q, nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
AND (qplines.priced_uom_code IS NULL
OR qplines.priced_uom_code = nvl(atrgrps.product_uom_code, qplines.priced_uom_code)
)
AND((atrgrps.ask_for_flag = qp_preq_grp.g_yes
AND EXISTS
(SELECT
/*+ index(la QP_PREQ_LINE_ATTRS_TMP_N1) */ /*'x' --[julin/pricebook/backport]
FROM qp_npreq_line_attrs_tmp la -- will check whether this can be moved to shaneeds code
WHERE attribute_type = G_QUALIFIER_TYPE
AND pricing_status_code = qp_preq_grp.g_status_unchanged
AND validated_flag = qp_preq_grp.g_no
AND list_header_id = atrgrps.list_header_id
AND line_index = qplines.line_index)
)
OR atrgrps.ask_for_flag = qp_preq_grp.g_no)
AND (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES AND
atrgrps.list_line_type_code NOT IN (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE) AND
atrgrps.automatic_flag = 'Y'
OR
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)*/
CURSOR l_line_cache_path2_cur(p_pricing_phase_id NUMBER) IS
SELECT
/*+ ORDERED index(atrgrps QP_ATTRIBUTE_GROUPS_N3)
index(qppattmp QP_NPREQ_LINE_PATRNS_T_N2)
index(qplines QP_PREQ_LINES_TMP_U1)
index(qprs qp_pte_source_systems_u2)
l_line_cache_path2_cur */
DISTINCT atrgrps.list_header_id,
atrgrps.list_line_id list_line_id,
qplines.line_index line_index,
qppattmp.pattern_id matched_pattrn_id,
p_pricing_phase_id,
qppattmp.hash_key matched_hash_key,
G_STAGE_CACHE_MOD_LIN stage,
atrgrps.source_system_code,
G_STATUS_UNCHANGED,
atrgrps.header_quals_exist_flag,
atrgrps.grouping_no,
atrgrps.eq_flag,
atrgrps.MODIFIER_LEVEL_CODE,
atrgrps.other_oprt_count,
atrgrps.null_other_oprt_count,
atrgrps.LIST_TYPE_CODE,
atrgrps.ASK_FOR_FLAG,
atrgrps.HEADER_LIMIT_EXISTS,
atrgrps.LINE_LIMIT_EXISTS,
atrgrps.descendents_quals_exist,
atrgrps.PRICE_BREAK_TYPE_CODE
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp,
qp_attribute_groups atrgrps,
qp_pte_source_systems qprs
WHERE atrgrps.list_line_id <> -1 -- Filter
AND atrgrps.pattern_id = qppattmp.pattern_id -- Match
AND atrgrps.hash_key = qppattmp.hash_key -- Match
AND atrgrps.pte_code = G_PTE_CODE
AND qppattmp.line_index = qplines.line_index --Join
AND atrgrps.list_type_code NOT IN('PRL', 'AGR') -- Filter
AND atrgrps.active_flag = 'Y' -- Filter
--AND atrgrps.source_system_code = qprs.source_system_code --join
--AND qprs.request_type_code = qp_preq_grp.g_request_type_code
AND qprs.APPLICATION_SHORT_NAME = atrgrps.source_system_code
AND qprs.pte_code = G_PTE_CODE
AND(atrgrps.modifier_level_code = qplines.line_type_code
OR (atrgrps.modifier_level_code = qp_preq_grp.g_line_group and
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES))
AND( qplines.unit_price IS NOT NULL
OR qplines.usage_pricing_type = qp_preq_grp.g_authoring_type
OR qplines.line_type_code = qp_preq_grp.g_order_level
)
AND(qplines.price_flag = qp_preq_grp.g_yes
OR(qplines.price_flag = qp_preq_grp.g_phase
AND p_freeze_override_flag = qp_preq_grp.g_yes)
)
AND atrgrps.pricing_phase_id = p_pricing_phase_id
AND(( atrgrps.currency_code IS NOT NULL
AND atrgrps.currency_code = qp_preq_grp.g_currency_code)
OR atrgrps.currency_code IS NULL
)
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(atrgrps.start_date_active_h, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(atrgrps.end_date_active_h, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qplines.start_date_active_first, sysdate))
BETWEEN TRUNC(nvl(atrgrps.start_date_active_first, nvl(qplines.start_date_active_first, sysdate)))
AND TRUNC(nvl(atrgrps.end_date_active_first, nvl(qplines.start_date_active_first, sysdate)))
AND TRUNC(nvl(qplines.start_date_active_second, sysdate))
BETWEEN TRUNC(nvl(atrgrps.start_date_active_second, nvl(qplines.start_date_active_second, sysdate)))
AND TRUNC(nvl(atrgrps.end_date_active_second, nvl(qplines.start_date_active_second, sysdate)))
AND nvl(qplines.active_date_first_type, 'X') = nvl(atrgrps.active_date_first_type, nvl(qplines.active_date_first_type, 'X'))
AND nvl(qplines.active_date_second_type, 'X') = nvl(atrgrps.active_date_second_type, nvl(qplines.active_date_second_type, 'X'))
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(atrgrps.start_date_active_l, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(atrgrps.end_date_active_l, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(atrgrps.start_date_active_q, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(atrgrps.end_date_active_q, nvl(qplines.pricing_effective_date, sysdate)))
AND (qplines.priced_uom_code IS NULL
OR qplines.priced_uom_code = nvl(atrgrps.product_uom_code, qplines.priced_uom_code)
)
AND((atrgrps.ask_for_flag = qp_preq_grp.g_yes
AND EXISTS
(SELECT
/*+ index(la QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/pricebook/backport]
FROM qp_npreq_line_attrs_tmp la -- will check whether this can be moved to shaneeds code
WHERE attribute_type = G_QUALIFIER_TYPE
AND pricing_status_code = qp_preq_grp.g_status_unchanged
AND validated_flag = qp_preq_grp.g_no
AND list_header_id = atrgrps.list_header_id
AND line_index = qplines.line_index)
)
OR atrgrps.ask_for_flag = qp_preq_grp.g_no)
AND (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES AND
atrgrps.list_line_type_code NOT IN (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE) AND
atrgrps.automatic_flag = 'Y'
OR
nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES);
SELECT
/*+ ORDERED index(atrgrps QP_ATTRIBUTE_GROUPS_N1)
index(qppattmp QP_NPREQ_LINE_PATRNS_T_N2)
index(intmdt QP_PREQ_PATRN_QUAL_T_N1)
l_hdr_cache_cur_path2 */
DISTINCT atrgrps.list_header_id,
-1 list_line_id,
qplines.line_index line_index,
qppattmp.pattern_id matched_pattrn_id,
p_pricing_phase_id,
qppattmp.hash_key matched_hash_key,
G_STAGE_CACHE_MOD_HDR stage,
atrgrps.source_system_code,
G_STATUS_UNCHANGED,
atrgrps.header_quals_exist_flag,
atrgrps.grouping_no,
atrgrps.eq_flag,
atrgrps.MODIFIER_LEVEL_CODE,
atrgrps.other_oprt_count,
atrgrps.null_other_oprt_count,
atrgrps.LIST_TYPE_CODE,
atrgrps.ASK_FOR_FLAG,
atrgrps.HEADER_LIMIT_EXISTS,
atrgrps.LINE_LIMIT_EXISTS,
atrgrps.descendents_quals_exist
FROM qp_preq_patrn_qual_tmp intmdt,
qp_secu_attr_groups_v atrgrps,
--qp_attribute_groups atrgrps,
qp_npreq_line_patrns_tmp qppattmp,
qp_npreq_lines_tmp qplines
WHERE intmdt.pricing_phase_id = p_pricing_phase_id
AND atrgrps.list_header_id = intmdt.list_header_id
AND intmdt.stage = G_STAGE_CACHE_MOD_LIN
AND atrgrps.list_line_id = -1 -- Filter
AND qppattmp.pattern_id = atrgrps.pattern_id -- Match
AND qppattmp.hash_key = atrgrps.hash_key -- Match
AND qppattmp.line_index = intmdt.line_index
AND qplines.line_index = qppattmp.line_index --Join
AND intmdt.pricing_status_code=QP_PREQ_GRP.G_STATUS_UNCHANGED
AND TRUNC(nvl(qplines.pricing_effective_date, sysdate))
BETWEEN TRUNC(nvl(atrgrps.start_date_active_q, nvl(qplines.pricing_effective_date, sysdate)))
AND TRUNC(nvl(atrgrps.end_date_active_q, nvl(qplines.pricing_effective_date, sysdate)));
SELECT
/*+ ORDERED index(atrgrps_l QP_ATTRIBUTE_GROUPS_N3)
index(atrgrps_h QP_ATTRIBUTE_GROUPS_N1)
index(qplines QP_PREQ_LINES_TMP_N4)
index(qppattmp_h QP_NPREQ_LINE_PATRNS_T_N1)
index(qppattmp_l QP_NPREQ_LINE_PATRNS_T_N2)
l_both_cache_path2_cur */
/*DISTINCT atrgrps_h.list_header_id,
atrgrps_l.list_line_id list_line_id,
qplines.line_index line_index,
qppattmp_l.pattern_id lin_matched_pattrn_id,
qppattmp_h.pattern_id hdr_matched_pattrn_id,
p_pricing_phase_id,
qppattmp_l.hash_key lin_matched_hash_key,
qppattmp_h.hash_key hdr_matched_hash_key,
G_STAGE_CACHE_MOD_LIN2 stage,
G_STATUS_UNCHANGED,
qprs.source_system_code,
DECODE(atrgrps_h.EQ_FLAG,'N','Y','N') HEADER_QUALS_EXIST_FLAG,
atrgrps_h.grouping_no,
atrgrps_l.grouping_no,
atrgrps_h.eq_flag,
atrgrps_l.eq_flag,
atrgrps_l.MODIFIER_LEVEL_CODE,
atrgrps_l.other_oprt_count,
atrgrps_l.null_other_oprt_count,
atrgrps_h.other_oprt_count,
atrgrps_h.null_other_oprt_count,
atrgrps_h.LIST_TYPE_CODE,
atrgrps_h.ASK_FOR_FLAG,
atrgrps_h.HEADER_LIMIT_EXISTS,
atrgrps_l.LINE_LIMIT_EXISTS
FROM qp_npreq_lines_tmp qplines,
qp_npreq_line_patrns_tmp qppattmp_l,
qp_attribute_groups atrgrps_l,
qp_attribute_groups atrgrps_h,
qp_npreq_line_patrns_tmp qppattmp_h,
qp_price_req_sources_v qprs
WHERE atrgrps_l.list_line_id <> -1 -- Filter
AND atrgrps_h.list_line_id = -1 -- Filter
AND atrgrps_l.list_header_id = atrgrps_h.list_header_id -- Filter
AND qppattmp_l.pattern_id = atrgrps_l.pattern_id -- Match
AND qppattmp_l.hash_key = atrgrps_l.hash_key -- Match
AND qppattmp_h.pattern_id = atrgrps_h.pattern_id -- Match
AND qppattmp_h.hash_key = atrgrps_h.hash_key -- Match
AND qppattmp_l.line_index = qplines.line_index --Join
AND qppattmp_h.line_index = qplines.line_index --Join
AND atrgrps_l.list_type_code NOT IN('PRL', 'AGR') -- Filter
AND atrgrps_h.list_type_code NOT IN('PRL', 'AGR') -- Filter
AND atrgrps_l.active_flag = 'Y' -- Filter
AND atrgrps_h.active_flag = 'Y' -- Filter
AND atrgrps_l.source_system_code = qprs.source_system_code --join
AND atrgrps_h.source_system_code = qprs.source_system_code --join
AND qprs.request_type_code = qp_preq_grp.g_request_type_code
AND((nvl(g_security_control, 'OFF') = 'ON' AND g_current_user_op_unit = atrgrps_h.orig_org_id)
OR (nvl(g_security_control, 'OFF') = 'ON' AND nvl(atrgrps_h.global_flag, 'Y') = 'Y')
OR nvl(g_security_control, 'OFF') = 'OFF'
)
AND(atrgrps_l.modifier_level_code = qplines.line_type_code
OR atrgrps_l.modifier_level_code = qp_preq_grp.g_line_group)
AND( qplines.unit_price IS NOT NULL
OR qplines.usage_pricing_type = qp_preq_grp.g_authoring_type
OR qplines.line_type_code = qp_preq_grp.g_order_level
)
AND(qplines.price_flag = qp_preq_grp.g_yes
OR(qplines.price_flag = qp_preq_grp.g_phase
AND p_freeze_override_flag = qp_preq_grp.g_yes)
)
AND atrgrps_l.pricing_phase_id = p_pricing_phase_id
-- AND atrgrps_h.pricing_phase_id = -1
AND(( atrgrps_h.currency_code IS NOT NULL
AND atrgrps_h.currency_code = qp_preq_grp.g_currency_code)
OR atrgrps_h.currency_code IS NULL
)
AND nvl(qplines.pricing_effective_date, TRUNC(sysdate))
BETWEEN nvl(atrgrps_h.start_date_active_h, nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
AND nvl(atrgrps_h.end_date_active_h, nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
AND nvl(qplines.start_date_active_first, TRUNC(sysdate))
BETWEEN nvl(atrgrps_h.start_date_active_first, nvl(qplines.start_date_active_first, TRUNC(sysdate)))
AND nvl(atrgrps_h.end_date_active_first, nvl(qplines.start_date_active_first, TRUNC(sysdate)))
AND nvl(qplines.start_date_active_second, TRUNC(sysdate))
BETWEEN nvl(atrgrps_h.start_date_active_second, nvl(qplines.start_date_active_second, TRUNC(sysdate)))
AND nvl(atrgrps_h.end_date_active_second, nvl(qplines.start_date_active_second, TRUNC(sysdate)))
AND nvl(qplines.active_date_first_type, 'X') = nvl(atrgrps_h.active_date_first_type, nvl(qplines.active_date_first_type, 'X'))
AND nvl(qplines.active_date_second_type, 'X') = nvl(atrgrps_h.active_date_second_type, nvl(qplines.active_date_second_type, 'X'))
AND nvl(qplines.pricing_effective_date, TRUNC(sysdate))
BETWEEN nvl(TRUNC(atrgrps_l.start_date_active_l), qplines.pricing_effective_date)
AND nvl(TRUNC(atrgrps_l.end_date_active_l), qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date, TRUNC(sysdate))
BETWEEN nvl(atrgrps_l.start_date_active_q, nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
AND nvl(atrgrps_l.end_date_active_q, nvl(qplines.pricing_effective_date, TRUNC(sysdate)))
AND (qplines.priced_uom_code IS NULL
OR qplines.priced_uom_code = nvl(atrgrps_l.product_uom_code, qplines.priced_uom_code)
)
AND((atrgrps_h.ask_for_flag = qp_preq_grp.g_yes
AND EXISTS
(SELECT
/*+ index(la QP_PREQ_LINE_ATTRS_TMP_N1) */ /*'x' --[julin/pricebook/backport]
FROM qp_npreq_line_attrs_tmp la -- will check whether this can be moved to shaneeds code
WHERE attribute_type = G_QUALIFIER_TYPE
AND pricing_status_code = qp_preq_grp.g_status_unchanged
AND validated_flag = qp_preq_grp.g_no
AND list_header_id = atrgrps_h.list_header_id
AND line_index = qplines.line_index)
)
OR atrgrps_h.ask_for_flag = qp_preq_grp.g_no);*/
l_routine VARCHAR2(40) := 'Select_modifiers_patrn';
qp_preq_grp.engine_debug('Entering into pattern Select_modifiers_patrn');
qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_HDR_CACHE_CUR', 'l_header_cache_cur');
l_list_header_id_tbl.DELETE;
l_list_line_id_tbl.DELETE;
l_line_index_tbl.DELETE;
l_matched_pattrn_id_tbl.DELETE;
l_pricing_phase_id_tbl.DELETE;
l_stage_tbl.DELETE;
l_matched_hash_key_tbl.DELETE;
l_pricing_status_code_tbl.DELETE;
l_ssc.DELETE;
l_header_quals_exist_flag.DELETE;
l_grouping_no.DELETE;
l_eq_flag.DELETE;
l_modf_lvl_code.DELETE;
l_other_oprt_count.DELETE;
l_null_other_oprt_count.DELETE;
l_list_type_code.DELETE;
l_ask_for_flag.DELETE;
l_hdr_lmt_exists.DELETE;
l_line_lmt_exists.DELETE;
l_descnt_quals_exist.DELETE;
forall i IN 1 .. l_list_header_id_tbl.COUNT INSERT
INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
descendents_quals_exist
)
VALUES(l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_modf_lvl_code(i),
l_other_oprt_count(i),
l_null_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_descnt_quals_exist(i));
qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_HDR_CACHE_CUR');
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_TCA
WHERE pricing_status_code = g_status_unchanged
AND a.descendents_quals_exist = 'Y'
and a.pricing_phase_id = p_pricing_phase_id
and a.stage = G_STAGE_CACHE_MOD_HDR
AND EXISTS (
SELECT 1
FROM qp_qualifiers b, qp_npreq_line_attrs_tmp c
WHERE b.list_header_id = a.list_header_id
AND b.list_line_id = a.list_line_id
AND (b.qualifier_grouping_no = a.grouping_no
or
b.qualifier_grouping_no = -1
)
AND b.qualify_hier_descendents_flag = 'N'
AND c.segment_id = b.segment_id
AND c.line_index = a.line_index
AND c.derived_qualifier_flag = 'Y');
qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_LINE_CACHE_CUR', 'l_line_cache_cur');
l_list_header_id_tbl.DELETE;
l_list_line_id_tbl.DELETE;
l_line_index_tbl.DELETE;
l_matched_pattrn_id_tbl.DELETE;
l_pricing_phase_id_tbl.DELETE;
l_stage_tbl.DELETE;
l_matched_hash_key_tbl.DELETE;
l_pricing_status_code_tbl.DELETE;
l_ssc.DELETE;
l_header_quals_exist_flag.DELETE;
l_grouping_no.DELETE;
l_eq_flag.DELETE;
l_modf_lvl_code.DELETE;
l_other_oprt_count.DELETE;
l_null_other_oprt_count.DELETE;
l_list_type_code.DELETE;
l_ask_for_flag.DELETE;
l_hdr_lmt_exists.DELETE;
l_line_lmt_exists.DELETE;
l_descnt_quals_exist.DELETE;
l_PRICE_BREAK_TYPE_CODE.DELETE;
INSERT INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
descendents_quals_exist,
PRICE_BREAK_TYPE_CODE
)
VALUES (l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_modf_lvl_code(i),
l_other_oprt_count(i),
l_null_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_descnt_quals_exist(i),
l_PRICE_BREAK_TYPE_CODE(i)
);
qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_LINE_CACHE_CUR');
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_TCA
WHERE pricing_status_code = g_status_unchanged
AND a.descendents_quals_exist = 'Y'
and a.pricing_phase_id = p_pricing_phase_id
and a.stage = G_STAGE_CACHE_MOD_LIN
AND EXISTS (
SELECT 1
FROM qp_qualifiers b, qp_npreq_line_attrs_tmp c
WHERE b.list_header_id = a.list_header_id
AND b.list_line_id = a.list_line_id
AND (b.qualifier_grouping_no = a.grouping_no
or
b.qualifier_grouping_no = -1
)
AND b.qualify_hier_descendents_flag = 'N'
AND c.segment_id = b.segment_id
AND c.line_index = a.line_index
AND c.derived_qualifier_flag = 'Y');
qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_BOTH_CACHE_CUR_PATH2', 'l_both_cache_path2_cur');
l_list_header_id_tbl.DELETE;
l_list_line_id_tbl.DELETE;
l_line_index_tbl.DELETE;
l_hdr_matched_pattrn_id_tbl.DELETE;
l_lin_matched_pattrn_id_tbl.DELETE;
l_pricing_phase_id_tbl.DELETE;
l_stage_tbl.DELETE;
l_hdr_matched_hash_key_tbl.DELETE;
l_lin_matched_hash_key_tbl.DELETE;
l_pricing_status_code_tbl.DELETE;
l_ssc.DELETE;
l_header_quals_exist_flag.DELETE;
l_hdr_grouping_no.DELETE;
l_lin_grouping_no.DELETE;
l_hdr_eq_flag.DELETE;
l_lin_eq_flag.DELETE;
l_modf_lvl_code.DELETE;
l_hdr_other_oprt_count.DELETE;
l_hdr_null_other_oprt_count.DELETE;
l_lin_other_oprt_count.DELETE;
l_lin_null_other_oprt_count.DELETE;
l_list_type_code.DELETE;
l_ask_for_flag.DELETE;
l_hdr_lmt_exists.DELETE;
l_line_lmt_exists.DELETE;
INSERT INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS
)
SELECT DISTINCT l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_lin_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_stage_tbl(i),
l_lin_matched_hash_key_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_lin_grouping_no(i),
l_lin_eq_flag(i),
l_modf_lvl_code(i),
l_lin_other_oprt_count(i),
l_lin_null_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i)
FROM dual;
INSERT INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS
)
SELECT DISTINCT l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_hdr_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_stage_tbl(i),
l_hdr_matched_hash_key_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_hdr_grouping_no(i),
l_hdr_eq_flag(i),
l_modf_lvl_code(i),
l_hdr_other_oprt_count(i),
l_hdr_null_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i)
FROM dual
WHERE l_hdr_eq_flag(i) = 'N';
qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_BOTH_CACHE_CUR_PATH2');
qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_DEL_HDR_PATH2', 'Line deletion');
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_LINE
WHERE pricing_phase_id = p_pricing_phase_id
AND pricing_status_code = qp_preq_grp.g_status_unchanged
AND list_line_id <> -1
AND nvl(header_quals_exist_flag, 'N') = 'Y'
AND NOT EXISTS
(SELECT 'x'
FROM qp_preq_patrn_qual_tmp b
WHERE b.list_header_id = a.list_header_id
AND b.list_line_id = -1
AND b.pricing_phase_id = a.pricing_phase_id
AND b.pricing_status_code = qp_preq_grp.g_status_unchanged
AND b.line_index = a.line_index);
qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_DEL_HDR_PATH2');*/
qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_LIN_CACHE_CUR_PATH2', 'l_line_cache_path2_cur');
l_list_header_id_tbl.DELETE;
l_list_line_id_tbl.DELETE;
l_line_index_tbl.DELETE;
l_matched_pattrn_id_tbl.DELETE;
l_pricing_phase_id_tbl.DELETE;
l_stage_tbl.DELETE;
l_matched_hash_key_tbl.DELETE;
l_pricing_status_code_tbl.DELETE;
l_ssc.DELETE;
l_header_quals_exist_flag.DELETE;
l_grouping_no.DELETE;
l_eq_flag.DELETE;
l_modf_lvl_code.DELETE;
l_other_oprt_count.DELETE;
l_null_other_oprt_count.DELETE;
l_list_type_code.DELETE;
l_ask_for_flag.DELETE;
l_hdr_lmt_exists.DELETE;
l_line_lmt_exists.DELETE;
l_descnt_quals_exist.DELETE;
l_PRICE_BREAK_TYPE_CODE.DELETE;
INSERT INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
descendents_quals_exist,
PRICE_BREAK_TYPE_CODE
)
VALUES(l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_modf_lvl_code(i),
l_other_oprt_count(i),
l_null_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_descnt_quals_exist(i),
l_PRICE_BREAK_TYPE_CODE(i)
);
qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_LIN_CACHE_CUR_PATH2');
qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_HDR_CACHE_CUR_PATH2', 'l_hdr_cache_cur_path2');
l_list_header_id_tbl.DELETE;
l_list_line_id_tbl.DELETE;
l_line_index_tbl.DELETE;
l_matched_pattrn_id_tbl.DELETE;
l_pricing_phase_id_tbl.DELETE;
l_stage_tbl.DELETE;
l_matched_hash_key_tbl.DELETE;
l_pricing_status_code_tbl.DELETE;
l_ssc.DELETE;
l_header_quals_exist_flag.DELETE;
l_grouping_no.DELETE;
l_eq_flag.DELETE;
l_modf_lvl_code.DELETE;
l_other_oprt_count.DELETE;
l_null_other_oprt_count.DELETE;
l_list_type_code.DELETE;
l_ask_for_flag.DELETE;
l_hdr_lmt_exists.DELETE;
l_line_lmt_exists.DELETE;
l_descnt_quals_exist.DELETE;
INSERT INTO qp_preq_patrn_qual_tmp(list_header_id,
list_line_id,
line_index,
matched_pattrn_id,
pricing_phase_id,
matched_hash_key,
stage,
pricing_status_code,
source_system_code,
header_quals_exist_flag,
grouping_no,
eq_flag,
MODIFIER_LEVEL_CODE,
other_oprt_count,
null_other_oprt_count,
LIST_TYPE_CODE,
ASK_FOR_FLAG,
HEADER_LIMIT_EXISTS,
LINE_LIMIT_EXISTS,
descendents_quals_exist)
VALUES(l_list_header_id_tbl(i),
l_list_line_id_tbl(i),
l_line_index_tbl(i),
l_matched_pattrn_id_tbl(i),
l_pricing_phase_id_tbl(i),
l_matched_hash_key_tbl(i),
l_stage_tbl(i),
l_pricing_status_code_tbl(i),
l_ssc(i),
l_header_quals_exist_flag(i),
l_grouping_no(i),
l_eq_flag(i),
l_modf_lvl_code(i),
l_other_oprt_count(i),
l_null_other_oprt_count(i),
l_list_type_code(i),
l_ask_for_flag(i),
l_hdr_lmt_exists(i),
l_line_lmt_exists(i),
l_descnt_quals_exist(i));
qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_HDR_CACHE_CUR_PATH2');
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_TCA
WHERE pricing_status_code = g_status_unchanged
AND a.descendents_quals_exist = 'Y'
and a.pricing_phase_id = p_pricing_phase_id
and a.stage IN (G_STAGE_CACHE_MOD_HDR,G_STAGE_CACHE_MOD_LIN)
AND EXISTS (
SELECT 1
FROM qp_qualifiers b, qp_npreq_line_attrs_tmp c
WHERE b.list_header_id = a.list_header_id
AND b.list_line_id = a.list_line_id
AND (b.qualifier_grouping_no = a.grouping_no
or
b.qualifier_grouping_no = -1
)
AND b.qualify_hier_descendents_flag = 'N'
AND c.segment_id = b.segment_id
AND c.line_index = a.line_index
AND c.derived_qualifier_flag = 'Y');
qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_DEL_HDR_PATH2', 'Line deletion');
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_LINE
WHERE pricing_phase_id = p_pricing_phase_id
AND pricing_status_code = qp_preq_grp.g_status_unchanged
AND list_line_id <> -1
AND nvl(header_quals_exist_flag, 'N') = 'Y'
AND a.stage = G_STAGE_CACHE_MOD_LIN
AND NOT EXISTS
(SELECT 'x'
FROM qp_preq_patrn_qual_tmp b
WHERE b.list_header_id = a.list_header_id
AND b.list_line_id = -1
AND b.line_index = a.line_index
AND b.pricing_phase_id = a.pricing_phase_id
AND pricing_status_code = qp_preq_grp.g_status_unchanged
AND b.stage = G_STAGE_CACHE_MOD_HDR);
qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_DEL_HDR_PATH2');
qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_UPD_EXCLUDER', 'Delete Excluder rows');
UPDATE qp_preq_patrn_qual_tmp a
SET pricing_status_code = G_DELETED_EXCLUDER
WHERE pricing_phase_id = p_pricing_phase_id
AND pricing_status_code = qp_preq_grp.g_status_unchanged
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.list_line_id
AND b.excluder_flag = qp_preq_grp.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 = qp_preq_grp.g_product_type
AND c.pricing_status_code = qp_preq_grp.g_status_unchanged
AND c.line_index = a.line_index);
qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_UPD_EXCLUDER');
qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_POPULATE_PAT_TEMP_TABLES', 'Populate_Pat_Temp_Tables');
qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_POPULATE_PAT_TEMP_TABLES');
END Select_modifiers_patrn;
UPDATE /*+ index(a qp_preq_patrn_qual_t_n3) */
QP_PREQ_PATRN_QUAL_TMP a
SET pricing_status_code = G_DEL_ATTR_NOT_SRCD_CMN_GRP
WHERE pricing_status_code = QP_PREQ_GRP.G_STATUS_UNCHANGED
AND eq_flag = 'N'
AND stage = p_stage
AND pricing_phase_id = p_pricing_phase_id
AND null_other_oprt_count <> 0
AND NOT EXISTS(
SELECT /*+ index(b qp_preq_line_attrs_tmp_n10) */ 1
FROM qp_npreq_line_attrs_tmp b
WHERE b.line_index = a.line_index
AND b.list_header_id = a.list_header_id
AND b.list_line_id = a.list_line_id
AND b.grouping_number = -1
AND b.comparison_operator_type_code IN (G_OPERATOR_NOT_EQL,G_OPERATOR_BETWEEN)
AND b.attribute_type IN (QP_PREQ_GRP.G_PRICING_TYPE,QP_PREQ_GRP.G_QUALIFIER_TYPE)
AND b.pricing_status_code = p_stage
AND b.pricing_phase_id = p_pricing_phase_id
AND b.line_index > 0
GROUP BY b.line_index,b.list_header_id,b.list_line_id
HAVING COUNT(DISTINCT b.CONTEXT||b.ATTRIBUTE||b.SETUP_VALUE_FROM) = a.null_other_oprt_count);
UPDATE /*+ index(a qp_preq_patrn_qual_t_n3) */
QP_PREQ_PATRN_QUAL_TMP a
SET pricing_status_code = G_DEL_ATTR_NOT_SRCD_GRP
WHERE pricing_status_code = QP_PREQ_GRP.G_STATUS_UNCHANGED
AND eq_flag = 'N'
AND stage = p_stage
AND pricing_phase_id = p_pricing_phase_id
AND grouping_no <> -1
AND other_oprt_count > 0
AND NOT EXISTS(
SELECT /*+ index(b qp_preq_line_attrs_tmp_n10) */ 1
FROM qp_npreq_line_attrs_tmp b
WHERE b.line_index = a.line_index
AND b.list_header_id = a.list_header_id
AND b.list_line_id = a.list_line_id
AND b.grouping_number = a.grouping_no
AND b.grouping_number <> -1
AND b.comparison_operator_type_code IN (G_OPERATOR_NOT_EQL,G_OPERATOR_BETWEEN)
AND b.attribute_type IN (QP_PREQ_GRP.G_QUALIFIER_TYPE)
AND b.pricing_status_code = p_stage
AND b.pricing_phase_id = p_pricing_phase_id
AND b.line_index > 0
GROUP BY b.line_index,b.list_header_id,b.list_line_id, b.grouping_number
HAVING COUNT(DISTINCT b.CONTEXT||b.ATTRIBUTE||b.SETUP_VALUE_FROM) = a.other_oprt_count);
UPDATE QP_PREQ_PATRN_QUAL_TMP
SET pricing_status_code = G_DEL_OTHR_OPR_CMN_GRP
WHERE pricing_status_code = QP_PREQ_GRP.G_STATUS_UNCHANGED
AND stage = p_stage
AND (line_index , list_header_id , list_line_id) IN
(SELECT distinct a.line_index , a.list_header_id , a.list_line_id
FROM qp_npreq_line_attrs_tmp a
WHERE a.comparison_operator_type_code = G_OPERATOR_NOT_EQL
AND a.attribute_type IN (QP_PREQ_GRP.G_PRICING_TYPE,QP_PREQ_GRP.G_QUALIFIER_TYPE)
AND a.pricing_status_code = p_stage
AND a.pricing_phase_id = p_pricing_phase_id
AND a.line_index > 0
AND a.grouping_number = -1
AND NVL(a.setup_value_from,FND_API.G_MISS_CHAR) = a.value_from
UNION ALL
SELECT distinct a.line_index , a.list_header_id , a.list_line_id
FROM qp_npreq_line_attrs_tmp a
WHERE a.comparison_operator_type_code = G_OPERATOR_BETWEEN
AND a.attribute_type IN (QP_PREQ_GRP.G_PRICING_TYPE,QP_PREQ_GRP.G_QUALIFIER_TYPE)
AND a.pricing_status_code = p_stage
AND a.pricing_phase_id = p_pricing_phase_id
AND a.line_index > 0
AND datatype in (QP_PREQ_GRP.G_DATE_X,QP_PREQ_GRP.G_DATE_Y,QP_PREQ_GRP.G_VARCHAR)
--AND a.MODIFIER_LEVEL_CODE <> G_LINE_GROUP
AND a.value_from NOT BETWEEN nvl(a.setup_value_from,a.value_from) and nvl(a.setup_value_to,a.value_from)
AND a.grouping_number = -1
UNION ALL
SELECT distinct a.line_index , a.list_header_id , a.list_line_id
FROM qp_npreq_line_attrs_tmp a
WHERE a.comparison_operator_type_code = G_OPERATOR_BETWEEN
AND a.attribute_type IN (QP_PREQ_GRP.G_PRICING_TYPE,QP_PREQ_GRP.G_QUALIFIER_TYPE)
AND a.pricing_status_code = p_stage
AND a.pricing_phase_id = p_pricing_phase_id
AND a.line_index > 0
AND datatype = QP_PREQ_GRP.G_NUMERIC
--AND a.MODIFIER_LEVEL_CODE <> G_LINE_GROUP
AND NOT (NVL(a.MODIFIER_LEVEL_CODE,FND_API.G_MISS_CHAR) = G_LINE_GROUP
AND a.CONTEXT = G_PRIC_VOLUME_CONTEXT
AND a.attribute in (G_QUANTITY_ATTRIBUTE,G_LINE_AMT_ATTRIBUTE))
AND fnd_number.canonical_to_number(DECODE(datatype,QP_PREQ_GRP.G_NUMERIC,a.value_from,null))
NOT BETWEEN nvl(fnd_number.canonical_to_number(a.setup_value_from),fnd_number.canonical_to_number(a.value_from))
AND nvl(fnd_number.canonical_to_number(a.setup_value_to),fnd_number.canonical_to_number(a.value_from))
AND a.grouping_number = -1);
UPDATE QP_PREQ_PATRN_QUAL_TMP
SET pricing_status_code = G_DEL_OTHR_OPR_GRP
WHERE pricing_status_code = QP_PREQ_GRP.G_STATUS_UNCHANGED
AND stage = p_stage
AND (line_index , list_header_id , list_line_id, grouping_no) IN
(SELECT distinct a.line_index , a.list_header_id , a.list_line_id ,a.grouping_number grouping_no
FROM qp_npreq_line_attrs_tmp a
WHERE a.comparison_operator_type_code = G_OPERATOR_NOT_EQL
AND a.attribute_type = QP_PREQ_GRP.G_QUALIFIER_TYPE
AND a.pricing_status_code = p_stage
AND a.pricing_phase_id = p_pricing_phase_id
AND a.line_index > 0
AND a.grouping_number <> -1
AND NVL(a.setup_value_from,FND_API.G_MISS_CHAR) = a.value_from
UNION ALL
SELECT distinct a.line_index , a.list_header_id , a.list_line_id ,a.grouping_number grouping_no
FROM qp_npreq_line_attrs_tmp a
WHERE a.comparison_operator_type_code = G_OPERATOR_BETWEEN
AND a.attribute_type = QP_PREQ_GRP.G_QUALIFIER_TYPE
AND a.pricing_status_code = p_stage
AND a.pricing_phase_id = p_pricing_phase_id
AND a.line_index > 0
AND datatype in (QP_PREQ_GRP.G_DATE_X,QP_PREQ_GRP.G_DATE_Y,QP_PREQ_GRP.G_VARCHAR)
--AND a.MODIFIER_LEVEL_CODE <> G_LINE_GROUP
AND a.value_from NOT BETWEEN nvl(a.setup_value_from,a.value_from) and nvl(a.setup_value_to,a.value_from)
AND a.grouping_number <> -1
UNION ALL
SELECT distinct a.line_index , a.list_header_id , a.list_line_id ,a.grouping_number grouping_no
FROM qp_npreq_line_attrs_tmp a
WHERE a.comparison_operator_type_code = G_OPERATOR_BETWEEN
AND a.attribute_type = QP_PREQ_GRP.G_QUALIFIER_TYPE
AND a.pricing_status_code = p_stage
AND a.pricing_phase_id = p_pricing_phase_id
AND a.line_index > 0
AND datatype = QP_PREQ_GRP.G_NUMERIC
--AND a.MODIFIER_LEVEL_CODE <> G_LINE_GROUP
AND NOT (NVL(a.MODIFIER_LEVEL_CODE,FND_API.G_MISS_CHAR) = G_LINE_GROUP
AND a.CONTEXT = G_PRIC_VOLUME_CONTEXT
AND a.attribute in (G_QUANTITY_ATTRIBUTE,G_LINE_AMT_ATTRIBUTE))
AND fnd_number.canonical_to_number(DECODE(datatype,QP_PREQ_GRP.G_NUMERIC,a.value_from,null))
NOT BETWEEN nvl(fnd_number.canonical_to_number(a.setup_value_from),fnd_number.canonical_to_number(a.value_from))
AND nvl(fnd_number.canonical_to_number(a.setup_value_to),fnd_number.canonical_to_number(a.value_from))
AND a.grouping_number <> -1);
qp_preq_grp.engine_debug('Number of rows deleted during NOT = and B/W operator evaluation for the non -1 groups-'||sql%rowcount);
Populating table qp_npreq_ldets_tmp with details of all selected modifier
lines after Pattern matching.
*/
l_start_line_index := G_MIN_LINE_INDEX;
qp_debug_util.tstart('POPULATE_PAT_TEMP_TABLES_QR1','Populate_Pat_Temp_Tables inserting 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,
NET_AMOUNT_FLAG,
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,
SERVICE_DURATION, -- service project
SERVICE_PERIOD, -- service project
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,
CURRENCY_DETAIL_ID,
CURRENCY_HEADER_ID,
SELLING_ROUNDING_FACTOR,
ORDER_CURRENCY,
BASE_CURRENCY_CODE,
BREAK_UOM_CODE,
BREAK_UOM_CONTEXT,
BREAK_UOM_ATTRIBUTE,
PRICING_EFFECTIVE_DATE
)
SELECT
QP_PREQ_GRP.GET_LINE_DETAIL_INDEX, --LINE_DETAIL_INDEX
'NULL', --LINE_DETAIL_TYPE_CODE
qplines.PRICE_BREAK_TYPE_CODE, -- PRICE_BREAK_TYPE_CODE
qpatq.line_index, -- LINE_INDEX
qpatq.list_header_id, -- CREATED_FROM_LIST_HEADER_ID
qpatq.list_line_id, -- CREATED_FROM_LIST_LINE_ID
qplines.list_line_type_code, -- CREATED_FROM_LIST_LINE_TYPE
qpatq.list_type_code, -- CREATED_FROM_LIST_TYPE_CODE
p_stage, -- CREATED_FROM_SQL
--'CREATED_FROM_PATTERN', -- CREATED_FROM_SQL --Check it
qplines.pricing_group_sequence, -- PRICING_GROUP_SEQUENCE
p_pricing_phase_id, -- PRICING_PHASE_ID
qplines.arithmetic_operator, -- OPERAND_CALCULATION_CODE
qplines.operand, -- OPERAND_VALUE
qplines.net_amount_flag, -- NET_AMOUNT_FLAG
qpatq.ask_for_flag, -- ASK_FOR_FLAG
qplines.price_by_formula_id, -- PRICE_FORMULA_ID
G_STATUS_NEW,--qpatq.PRICING_STATUS_CODE, -- PRICING_STATUS_CODE
qpatq.PRICING_STATUS_TEXT, -- PRICING_STATUS_TEXT
qplines.product_precedence, -- PRODUCT_PRECEDENCE
qplines.incompatibility_grp_code, -- INCOMPATABILITY_GRP_CODE
QP_PREQ_GRP.G_NOT_PROCESSED, -- PROCESSED_FLAG
qplines.automatic_flag, -- APPLIED_FLAG
qplines.automatic_flag, -- AUTOMATIC_FLAG
qplines.override_flag, -- OVERRIDE_FLAG
qplines.primary_uom_flag, -- PRIMARY_UOM_FLAG
qplines.modifier_level_code, -- MODIFIER_LEVEL_CODE
qplines.benefit_qty, -- BENEFIT_QTY
qplines.benefit_uom_code, -- BENEFIT_UOM_CODE
qplines.service_duration, -- service project
qplines.service_period, -- service project
qplines.list_line_no, -- LIST_LINE_NO
qplines.accrual_flag, -- ACCRUAL_FLAG
qplines.accrual_conversion_rate, -- ACCRUAL_CONVERSION_RATE
qplines.estim_accrual_rate, -- ESTIM_ACCRUAL_RATE
--decode(qph.limit_exists_flag,'Y','Y',decode(qplines.limit_exists_flag,'Y','Y','N')), -- HEADER_LIMIT_EXISTS
qpatq.HEADER_LIMIT_EXISTS, -- HEADER_LIMIT_EXISTS
qplines.limit_exists_flag, -- LINE_LIMIT_EXISTS
QP_PREQ_GRP.G_STATUS_NEW, -- PROCESS_CODE
qplines.charge_type_code, -- CHARGE_TYPE_CODE
qplines.charge_subtype_code, -- CHARGE_SUBTYPE_CODE
qplines.accum_context, -- ACCUM_CONTEXT
qplines.accum_attribute, -- ACCUM_ATTRIBUTE
qplines.accum_attr_run_src_flag, -- ACCUM_ATTR_RUN_SRC_FLAG
qpatq.CURRENCY_DETAIL_ID,
qpatq.CURRENCY_HEADER_ID,
qpatq.SELLING_ROUNDING_FACTOR,
qpatq.ORDER_CURRENCY,
qpatq.BASE_CURRENCY_CODE,
qpatq.BREAK_UOM_CODE,
qpatq.BREAK_UOM_CONTEXT,
qpatq.BREAK_UOM_ATTRIBUTE,
qpatq.PRICING_EFFECTIVE_DATE
FROM
(
SELECT DISTINCT pricing_phase_id, line_index, list_header_id,
list_line_id, pricing_status_code, PRICING_STATUS_TEXT,
list_type_code, ask_for_flag, HEADER_LIMIT_EXISTS,
CURRENCY_DETAIL_ID, CURRENCY_HEADER_ID, SELLING_ROUNDING_FACTOR,
ORDER_CURRENCY, BASE_CURRENCY_CODE, BREAK_UOM_CODE,
BREAK_UOM_CONTEXT, BREAK_UOM_ATTRIBUTE, PRICING_EFFECTIVE_DATE
FROM QP_PREQ_PATRN_QUAL_TMP
WHERE stage = p_stage
AND pricing_phase_id = p_pricing_phase_id
AND list_line_id <> -1
AND pricing_status_code = G_STATUS_UNCHANGED
AND line_index BETWEEN l_start_line_index AND l_end_line_index
)qpatq,
QP_LIST_LINES qplines
WHERE qplines.list_line_id = qpatq.list_line_id;
qp_preq_grp.engine_debug('Successfully inserted data in table qp_npreq_ldets_tmp');
qp_debug_util.tstart('POPULATE_PAT_TEMP_TABLES_QR3','Populate_Pat_Temp_Tables Inserting line attrs temp');
Attributes for selected modifier lines.
*/
l_start_line_index := G_MIN_LINE_INDEX;
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,
--SEGMENT_ID,
derived_qualifier_flag
)
-- Product Attributes
SELECT /*+ ORDERED index(qplaptr qp_preq_line_attrs_tmp_n8) */
qpldets.LINE_INDEX, --LINE_INDEX
qpldets.LINE_DETAIL_INDEX, --LINE_DETAIL_INDEX
qplaptr.ATTRIBUTE_LEVEL, --ATTRIBUTE_LEVEL
qplaptr.ATTRIBUTE_TYPE, --ATTRIBUTE_TYPE
qpldets.CREATED_FROM_LIST_HEADER_ID, --LIST_HEADER_ID
qpldets.CREATED_FROM_LIST_LINE_ID , --LIST_LINE_ID
qppatr.PRODUCT_ATTRIBUTE_CONTEXT, --CONTEXT
qppatr.PRODUCT_ATTRIBUTE, --ATTRIBUTE
qplaptr.VALUE_FROM, --VALUE_FROM
qppatr.PRODUCT_ATTR_VALUE,--SETUP_VALUE_FROM
NULL,--VALUE_TO
NULL,--SETUP_VALUE_TO
-1,--GROUPING_NUMBER --bug 12731268
qppatr.COMPARISON_OPERATOR_CODE,--COMPARISON_OPERATOR_TYPE_CODE
qplaptr.VALIDATED_FLAG,--VALIDATED_FLAG
qplaptr.APPLIED_FLAG,--APPLIED_FLAG
G_STATUS_NEW,--qp_preq_grp.G_STATUS_UNCHANGED,--PRICING_STATUS_CODE --Check this attribute
'Product Attribute',--PRICING_STATUS_TEXT --Check this attribute
NULL,--QUALIFIER_PRECEDENCE
qppatr.PRODUCT_ATTRIBUTE_DATATYPE,--DATATYPE
qplaptr.PRICING_ATTR_FLAG,--PRICING_ATTR_FLAG
'NO',--QUALIFIER_TYPE
qppatr.PRODUCT_UOM_CODE, --PRODUCT_UOM_CODE
qppatr.excluder_flag, --EXCLUDER_FLAG
qpldets.pricing_phase_id, --PRICING_PHASE_ID
qpldets.INCOMPATABILITY_GRP_CODE, --INCOMPATABILITY_GRP_CODE
'NULL', --LINE_DETAIL_TYPE_CODE
qpldets.MODIFIER_LEVEL_CODE, --MODIFIER_LEVEL_CODE
qpldets.PRIMARY_UOM_FLAG, --PRIMARY_UOM_FLAG
--qppatr.PRODUCT_SEGMENT_ID, --SEGMENT_ID
qplaptr.derived_qualifier_flag
FROM qp_npreq_ldets_tmp qpldets,
QP_PRICING_ATTRIBUTES qppatr,
qp_npreq_line_attrs_tmp qplaptr
WHERE qpldets.pricing_phase_id = p_pricing_phase_id
AND qpldets.line_index BETWEEN l_start_line_index AND l_end_line_index
AND qpldets.CREATED_FROM_SQL = p_stage
AND qppatr.list_line_id = qpldets.CREATED_FROM_LIST_LINE_ID
AND qppatr.list_header_id = qpldets.CREATED_FROM_LIST_HEADER_ID --Could be removed
AND qppatr.excluder_flag = 'N'
AND qppatr.product_attribute_context is not null
AND (qppatr.pricing_attribute_context = G_PRIC_VOLUME_CONTEXT or
qppatr.pricing_attribute_context is null)
AND qplaptr.LINE_INDEX = qpldets.LINE_INDEX
AND qplaptr.segment_id = qppatr.PRODUCT_SEGMENT_ID
AND qplaptr.attribute_type=G_PRODUCT_TYPE
UNION
-- Pricing Attributes
SELECT /*+ ORDERED index(qplaptr qp_preq_line_attrs_tmp_n8) */
qpldets.LINE_INDEX, --LINE_INDEX
qpldets.LINE_DETAIL_INDEX, --LINE_DETAIL_INDEX
qplaptr.ATTRIBUTE_LEVEL, --ATTRIBUTE_LEVEL
qplaptr.ATTRIBUTE_TYPE, --ATTRIBUTE_TYPE
qpldets.CREATED_FROM_LIST_HEADER_ID, --LIST_HEADER_ID
qpldets.CREATED_FROM_LIST_LINE_ID, --LIST_LINE_ID
qppatr.PRICING_ATTRIBUTE_CONTEXT, --CONTEXT
qppatr.PRICING_ATTRIBUTE, --ATTRIBUTE
qplaptr.VALUE_FROM, --VALUE_FROM
qppatr.PRICING_ATTR_VALUE_FROM,--SETUP_VALUE_FROM
qplaptr.VALUE_TO,--VALUE_TO
qppatr.PRICING_ATTR_VALUE_TO,--SETUP_VALUE_TO
-1,--GROUPING_NUMBER --bug 12731268
qppatr.COMPARISON_OPERATOR_CODE,--COMPARISON_OPERATOR_TYPE_CODE
qplaptr.VALIDATED_FLAG,--VALIDATED_FLAG
qplaptr.APPLIED_FLAG,--APPLIED_FLAG
G_STATUS_NEW,--QP_PREQ_GRP.G_STATUS_UNCHANGED,--PRICING_STATUS_CODE --Check this attribute
'Pricing Attribute',--PRICING_STATUS_TEXT --Check this attribute
NULL,--QUALIFIER_PRECEDENCE
qppatr.PRICING_ATTRIBUTE_DATATYPE,--DATATYPE
qplaptr.PRICING_ATTR_FLAG,--PRICING_ATTR_FLAG
'NO',--QUALIFIER_TYPE
qppatr.PRODUCT_UOM_CODE, --PRODUCT_UOM_CODE
qppatr.excluder_flag, --EXCLUDER_FLAG
qpldets.pricing_phase_id, --PRICING_PHASE_ID
qpldets.INCOMPATABILITY_GRP_CODE, --INCOMPATABILITY_GRP_CODE
'NULL', --LINE_DETAIL_TYPE_CODE
qpldets.MODIFIER_LEVEL_CODE, --MODIFIER_LEVEL_CODE
qpldets.PRIMARY_UOM_FLAG, --PRIMARY_UOM_FLAG
--qppatr.PRICING_SEGMENT_ID, --SEGMENT_ID
qplaptr.derived_qualifier_flag
FROM qp_npreq_ldets_tmp qpldets,
QP_PRICING_ATTRIBUTES qppatr,
qp_npreq_line_attrs_tmp qplaptr
WHERE qpldets.pricing_phase_id = p_pricing_phase_id
AND qpldets.line_index BETWEEN l_start_line_index AND l_end_line_index
AND qpldets.CREATED_FROM_SQL = p_stage
AND qppatr.list_line_id = qpldets.CREATED_FROM_LIST_LINE_ID
AND qppatr.list_header_id = qpldets.CREATED_FROM_LIST_HEADER_ID --Could be removed
AND qppatr.excluder_flag = G_NO
AND qppatr.pricing_attribute_context IS NOT NULL
AND qplaptr.LINE_INDEX = qpldets.LINE_INDEX
AND qplaptr.segment_id = qppatr.PRICING_SEGMENT_ID
AND qplaptr.attribute_type=G_PRICING_TYPE;
qp_preq_grp.engine_debug('Successfully inserted data in table qp_npreq_line_attrs_tmp');
Rows for all the selected header level qualifiers will be inserted in table
qp_npreq_line_attrs_tmp in case of PL primary search, PL Secondary search and PL big search
even if the profile QP_SATIS_QUALS_OPT is No. For modifiers same will be inserted only if the
profile is YES.
This has been done to resolve an issue which was found during UT done for bug 10054913.
The issue was that qualfier precedence of the associated header level qualfieirs with a PL
were not being considered correctly during incombatibility check after PL big search.
The PLs having no qualifiers were given higher precedence on the PLs having qualifiers which is
contrary to the behaviour in existing engine.
It was haeppening because in pattern engine, rows for satisfied qualifier attributes were
missing in table qp_npreq_line_attrs_tmp. So after this fix such rows will be inserted in
this table but only in case of PL search. It has not been done for the modifiers because
of the performance reasons.
*/
IF l_satis_quals_opt = G_YES
OR p_stage NOT IN (G_STAGE_CACHE_MOD_LIN, G_STAGE_CACHE_MOD_LIN2) --Bug 10216430
THEN
qp_debug_util.tstart('POPULATE_PAT_TEMP_TABLES_QR4','Insert Header Qualifiers in Attrs Table');
Qualifier Attributes for selected qualifier groups of selected modifier lines.
*/
l_start_line_index := G_MIN_LINE_INDEX;
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,
--SEGMENT_ID,
derived_qualifier_flag
)
SELECT /*+ ORDERED index(qpq QP_QUALIFIERS_N1) index(qplines qp_preq_line_attrs_tmp_n8) index(qppatq QP_PREQ_PATRN_QUAL_T_N2) */
qpldets.LINE_INDEX, --LINE_INDEX,
qpldets.LINE_DETAIL_INDEX, -- LINE_DETAIL_INDEX,
qplines.ATTRIBUTE_LEVEL, -- ATTRIBUTE_LEVEL,
qplines.ATTRIBUTE_TYPE, -- ATTRIBUTE_TYPE,
qpldets.CREATED_FROM_LIST_HEADER_ID, -- LIST_HEADER_ID,
qpldets.CREATED_FROM_LIST_LINE_ID, --1, -- LIST_LINE_ID, --bug 10216430
qpq.QUALIFIER_CONTEXT, -- CONTEXT,
qpq.QUALIFIER_ATTRIBUTE,-- ATTRIBUTE,
qplines.VALUE_FROM, -- VALUE_FROM,
qpq.QUALIFIER_ATTR_VALUE, --SETUP_VALUE_FROM,
qplines.VALUE_TO, -- VALUE_TO,
qpq.QUALIFIER_ATTR_VALUE_TO, -- SETUP_VALUE_TO,
qpq.QUALIFIER_GROUPING_NO, -- GROUPING_NUMBER,
qpq.COMPARISON_OPERATOR_CODE, -- COMPARISON_OPERATOR_TYPE_CODE,
qplines.VALIDATED_FLAG, -- VALIDATED_FLAG,
qplines.APPLIED_FLAG, -- APPLIED_FLAG,
G_STATUS_NEW,-- PRICING_STATUS_CODE,
'QUALIFIERS', -- PRICING_STATUS_TEXT,
qpq.QUALIFIER_PRECEDENCE, -- QUALIFIER_PRECEDENCE,
qpq.QUALIFIER_DATATYPE, -- DATATYPE,
QP_PREQ_GRP.G_NO, --PRICING_ATTR_FLAG,
'HQ', -- QUALIFIER_TYPE,
null,-- PRODUCT_UOM_CODE,
qpq.EXCLUDER_FLAG, --EXCLUDER_FLAG,
p_pricing_phase_id, -- PRICING_PHASE_ID,
qpldets.INCOMPATABILITY_GRP_CODE, -- INCOMPATABILITY_GRP_CODE,
qplines.LINE_DETAIL_TYPE_CODE, -- LINE_DETAIL_TYPE_CODE,
qplines.MODIFIER_LEVEL_CODE, -- MODIFIER_LEVEL_CODE,
qpldets.PRIMARY_UOM_FLAG, -- PRIMARY_UOM_FLAG
--qpq.SEGMENT_ID,
qplines.derived_qualifier_flag
FROM
qp_npreq_ldets_tmp qpldets,
QP_PREQ_PATRN_QUAL_TMP qppatq,
qp_qualifiers qpq,
qp_npreq_line_attrs_tmp qplines
WHERE
qpldets.pricing_phase_id = p_pricing_phase_id
AND qpldets.line_index BETWEEN l_start_line_index AND l_end_line_index
AND qpldets.CREATED_FROM_SQL = p_stage
AND qppatq.LINE_INDEX = qpldets.LINE_INDEX
AND qppatq.LIST_HEADER_ID = qpldets.CREATED_FROM_LIST_HEADER_ID
AND qppatq.list_line_id = -1
AND qpq.LIST_HEADER_ID = qppatq.LIST_HEADER_ID
AND qpq.list_line_id = -1
AND qpq.QUALIFIER_GROUPING_NO = qppatq.GROUPING_NO
AND qplines.SEGMENT_ID = qpq.SEGMENT_ID
AND qplines.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND qplines.LINE_INDEX = qppatq.LINE_INDEX
UNION
-- -1 qualifiers if other group exist
SELECT /*+ ORDERED index(qpq QP_QUALIFIERS_N1) index(qplines qp_preq_line_attrs_tmp_n8) index(qppatq QP_PREQ_PATRN_QUAL_T_N2) */
qpldets.LINE_INDEX, --LINE_INDEX,
qpldets.LINE_DETAIL_INDEX, -- LINE_DETAIL_INDEX,
qplines.ATTRIBUTE_LEVEL, -- ATTRIBUTE_LEVEL,
qplines.ATTRIBUTE_TYPE, -- ATTRIBUTE_TYPE,
qpldets.CREATED_FROM_LIST_HEADER_ID, -- LIST_HEADER_ID,
qpldets.CREATED_FROM_LIST_LINE_ID, --1, -- LIST_LINE_ID, --bug 10216430
qpq.QUALIFIER_CONTEXT, -- CONTEXT,
qpq.QUALIFIER_ATTRIBUTE,-- ATTRIBUTE,
qplines.VALUE_FROM, -- VALUE_FROM,
qpq.QUALIFIER_ATTR_VALUE, --SETUP_VALUE_FROM,
qplines.VALUE_TO, -- VALUE_TO,
qpq.QUALIFIER_ATTR_VALUE_TO, -- SETUP_VALUE_TO,
qpq.QUALIFIER_GROUPING_NO, -- GROUPING_NUMBER,
qpq.COMPARISON_OPERATOR_CODE, -- COMPARISON_OPERATOR_TYPE_CODE,
qplines.VALIDATED_FLAG, -- VALIDATED_FLAG,
qplines.APPLIED_FLAG, -- APPLIED_FLAG,
G_STATUS_NEW,-- PRICING_STATUS_CODE,
'QUALIFIERS', -- PRICING_STATUS_TEXT,
qpq.QUALIFIER_PRECEDENCE, -- QUALIFIER_PRECEDENCE,
qpq.QUALIFIER_DATATYPE, -- DATATYPE,
QP_PREQ_GRP.G_NO, --PRICING_ATTR_FLAG,
'HQ', -- QUALIFIER_TYPE,
null,-- PRODUCT_UOM_CODE,
qpq.EXCLUDER_FLAG, --EXCLUDER_FLAG,
p_pricing_phase_id, -- PRICING_PHASE_ID,
qpldets.INCOMPATABILITY_GRP_CODE, -- INCOMPATABILITY_GRP_CODE,
qplines.LINE_DETAIL_TYPE_CODE, -- LINE_DETAIL_TYPE_CODE,
qplines.MODIFIER_LEVEL_CODE, -- MODIFIER_LEVEL_CODE,
qpldets.PRIMARY_UOM_FLAG, -- PRIMARY_UOM_FLAG
--qpq.SEGMENT_ID,
qplines.derived_qualifier_flag
FROM
qp_npreq_ldets_tmp qpldets,
QP_PREQ_PATRN_QUAL_TMP qppatq,
qp_qualifiers qpq,
qp_npreq_line_attrs_tmp qplines
WHERE
qpldets.pricing_phase_id = p_pricing_phase_id
AND qpldets.line_index BETWEEN l_start_line_index AND l_end_line_index
AND qpldets.CREATED_FROM_SQL = p_stage
AND qppatq.LINE_INDEX = qpldets.LINE_INDEX
AND qppatq.LIST_HEADER_ID = qpldets.CREATED_FROM_LIST_HEADER_ID
AND qppatq.list_line_id = -1
AND qpq.LIST_HEADER_ID = qppatq.LIST_HEADER_ID
AND qpq.list_line_id = qppatq.list_line_id
AND qpq.QUALIFIER_GROUPING_NO = -1
--AND qppatq.null_other_oprt_count > 0 --Bug 10216430
AND qppatq.GROUPING_NO <> -1
AND qplines.SEGMENT_ID = qpq.SEGMENT_ID
AND qplines.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND qplines.LINE_INDEX = qppatq.LINE_INDEX;
qp_preq_grp.engine_debug('Successfully inserted header level qualifiers in table qp_npreq_line_attrs_tmp');
qp_debug_util.tstart('POPULATE_PAT_TEMP_TABLES_QR5','Insert Line Qualifiers in Attrs Table');
attributes for selected qualifier groups of selected modifier lines.
*/
l_start_line_index := G_MIN_LINE_INDEX;
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,
--SEGMENT_ID,
derived_qualifier_flag
)
SELECT /*+ ORDERED index(qpq QP_QUALIFIERS_N1) index(qplines qp_preq_line_attrs_tmp_n8) index(qppatq QP_PREQ_PATRN_QUAL_T_N2) */
qpldets.LINE_INDEX, --LINE_INDEX,
qpldets.LINE_DETAIL_INDEX, -- LINE_DETAIL_INDEX,
qplines.ATTRIBUTE_LEVEL, -- ATTRIBUTE_LEVEL,
qplines.ATTRIBUTE_TYPE, -- ATTRIBUTE_TYPE,
qpldets.CREATED_FROM_LIST_HEADER_ID, -- LIST_HEADER_ID,
qpldets.CREATED_FROM_LIST_LINE_ID, -- LIST_LINE_ID,
qpq.QUALIFIER_CONTEXT, -- CONTEXT,
qpq.QUALIFIER_ATTRIBUTE,-- ATTRIBUTE,
qplines.VALUE_FROM, -- VALUE_FROM,
qpq.QUALIFIER_ATTR_VALUE, --SETUP_VALUE_FROM,
qplines.VALUE_TO, -- VALUE_TO,
qpq.QUALIFIER_ATTR_VALUE_TO, -- SETUP_VALUE_TO,
qpq.QUALIFIER_GROUPING_NO, -- GROUPING_NUMBER,
qpq.COMPARISON_OPERATOR_CODE, -- COMPARISON_OPERATOR_TYPE_CODE,
qplines.VALIDATED_FLAG, -- VALIDATED_FLAG,
qplines.APPLIED_FLAG, -- APPLIED_FLAG,
G_STATUS_NEW,-- PRICING_STATUS_CODE,
'LINE QUALIFIERS', -- PRICING_STATUS_TEXT,
qpq.QUALIFIER_PRECEDENCE, -- QUALIFIER_PRECEDENCE,
qpq.QUALIFIER_DATATYPE, -- DATATYPE,
QP_PREQ_GRP.G_NO, --PRICING_ATTR_FLAG,
'LQ', -- QUALIFIER_TYPE,
null,-- PRODUCT_UOM_CODE,
qpq.EXCLUDER_FLAG, --EXCLUDER_FLAG,
p_pricing_phase_id, -- PRICING_PHASE_ID,
qpldets.INCOMPATABILITY_GRP_CODE, -- INCOMPATABILITY_GRP_CODE,
qplines.LINE_DETAIL_TYPE_CODE, -- LINE_DETAIL_TYPE_CODE,
qplines.MODIFIER_LEVEL_CODE, -- MODIFIER_LEVEL_CODE,
qpldets.PRIMARY_UOM_FLAG, -- PRIMARY_UOM_FLAG
--qpq.SEGMENT_ID,
qplines.derived_qualifier_flag
FROM
qp_npreq_ldets_tmp qpldets,
QP_PREQ_PATRN_QUAL_TMP qppatq,
qp_qualifiers qpq,
qp_npreq_line_attrs_tmp qplines
WHERE
qpldets.pricing_phase_id = p_pricing_phase_id
AND qpldets.line_index BETWEEN l_start_line_index AND l_end_line_index
AND qpldets.CREATED_FROM_SQL = p_stage
AND qppatq.LINE_INDEX = qpldets.LINE_INDEX
AND qppatq.LIST_HEADER_ID = qpldets.CREATED_FROM_LIST_HEADER_ID
AND qppatq.list_line_id = qpldets.CREATED_FROM_LIST_LINE_ID
AND qpq.LIST_HEADER_ID = qppatq.LIST_HEADER_ID
AND qpq.list_line_id = qppatq.list_line_id
AND qpq.QUALIFIER_GROUPING_NO = qppatq.GROUPING_NO
AND qplines.SEGMENT_ID = qpq.SEGMENT_ID
AND qplines.LINE_INDEX = qppatq.LINE_INDEX
UNION all
-- -1 qualifiers if other group exist
SELECT /*+ ORDERED index(qpq QP_QUALIFIERS_N1) index(qplines qp_preq_line_attrs_tmp_n8) index(qppatq QP_PREQ_PATRN_QUAL_T_N2) */
qpldets.LINE_INDEX, --LINE_INDEX,
qpldets.LINE_DETAIL_INDEX, -- LINE_DETAIL_INDEX,
qplines.ATTRIBUTE_LEVEL, -- ATTRIBUTE_LEVEL,
qplines.ATTRIBUTE_TYPE, -- ATTRIBUTE_TYPE,
qpldets.CREATED_FROM_LIST_HEADER_ID, -- LIST_HEADER_ID,
qpldets.CREATED_FROM_LIST_LINE_ID, -- LIST_LINE_ID,
qpq.QUALIFIER_CONTEXT, -- CONTEXT,
qpq.QUALIFIER_ATTRIBUTE,-- ATTRIBUTE,
qplines.VALUE_FROM, -- VALUE_FROM,
qpq.QUALIFIER_ATTR_VALUE, --SETUP_VALUE_FROM,
qplines.VALUE_TO, -- VALUE_TO,
qpq.QUALIFIER_ATTR_VALUE_TO, -- SETUP_VALUE_TO,
qpq.QUALIFIER_GROUPING_NO, -- GROUPING_NUMBER,
qpq.COMPARISON_OPERATOR_CODE, -- COMPARISON_OPERATOR_TYPE_CODE,
qplines.VALIDATED_FLAG, -- VALIDATED_FLAG,
qplines.APPLIED_FLAG, -- APPLIED_FLAG,
G_STATUS_NEW,-- PRICING_STATUS_CODE,
'LINE QUALIFIERS', -- PRICING_STATUS_TEXT,
qpq.QUALIFIER_PRECEDENCE, -- QUALIFIER_PRECEDENCE,
qpq.QUALIFIER_DATATYPE, -- DATATYPE,
QP_PREQ_GRP.G_NO, --PRICING_ATTR_FLAG,
'LQ', -- QUALIFIER_TYPE,
null,-- PRODUCT_UOM_CODE,
qpq.EXCLUDER_FLAG, --EXCLUDER_FLAG,
p_pricing_phase_id, -- PRICING_PHASE_ID,
qpldets.INCOMPATABILITY_GRP_CODE, -- INCOMPATABILITY_GRP_CODE,
qplines.LINE_DETAIL_TYPE_CODE, -- LINE_DETAIL_TYPE_CODE,
qplines.MODIFIER_LEVEL_CODE, -- MODIFIER_LEVEL_CODE,
qpldets.PRIMARY_UOM_FLAG, -- PRIMARY_UOM_FLAG
--qpq.SEGMENT_ID,
qplines.derived_qualifier_flag
FROM
qp_npreq_ldets_tmp qpldets,
QP_PREQ_PATRN_QUAL_TMP qppatq,
qp_qualifiers qpq,
qp_npreq_line_attrs_tmp qplines
WHERE
qpldets.pricing_phase_id = p_pricing_phase_id
AND qpldets.line_index BETWEEN l_start_line_index AND l_end_line_index
AND qpldets.CREATED_FROM_SQL = p_stage
AND qppatq.LINE_INDEX = qpldets.LINE_INDEX
AND qppatq.LIST_HEADER_ID = qpldets.CREATED_FROM_LIST_HEADER_ID
AND qppatq.list_line_id = qpldets.CREATED_FROM_LIST_LINE_ID
AND qpq.LIST_HEADER_ID = qppatq.LIST_HEADER_ID
AND qpq.list_line_id = qppatq.list_line_id
AND qpq.QUALIFIER_GROUPING_NO = -1
AND qppatq.null_other_oprt_count > 0
AND qppatq.GROUPING_NO <> -1
AND qplines.SEGMENT_ID = qpq.SEGMENT_ID
AND qplines.LINE_INDEX = qppatq.LINE_INDEX;
qp_preq_grp.engine_debug('Successfully inserted line level qualifiers in table qp_npreq_line_attrs_tmp');
UPDATE qp_npreq_ldets_tmp a
SET a.line_quantity = ( SELECT VALUE_FROM
FROM qp_npreq_line_attrs_tmp b
WHERE b.LINE_INDEX = a.LINE_INDEX
AND b.LINE_DETAIL_INDEX = a.LINE_DETAIL_INDEX
AND b.context = G_PRIC_VOLUME_CONTEXT
AND b.attribute_type = G_PRICING_TYPE
AND b.pricing_phase_id = p_pricing_phase_id
AND b.datatype = G_NUMERIC
AND b.pricing_status_code = G_STATUS_NEW)
WHERE a.pricing_phase_id = p_pricing_phase_id
AND a.CREATED_FROM_SQL = p_stage
AND a.MODIFIER_LEVEL_CODE <> G_LINE_GROUP;
UPDATE qp_npreq_line_attrs_tmp a
SET a.QUALIFIER_PRECEDENCE = (SELECT /*+ index(b qp_preq_patrn_qual_t_n2) */
-- DISTINCT QUALIFIER_PRECEDENCE --bug 12731268
MIN(QUALIFIER_PRECEDENCE) --Bug 10216430
FROM QP_PREQ_PATRN_QUAL_TMP b
WHERE b.LINE_INDEX = a.line_index
AND b.list_header_id = a.list_header_id
AND b.LIST_LINE_ID = a.LIST_LINE_ID
AND b.stage = p_stage
AND b.grouping_no = a.GROUPING_NUMBER --bug 12731268
AND b.pricing_phase_id = p_pricing_phase_id
AND b.pricing_status_code = G_STATUS_UNCHANGED)
WHERE a.pricing_phase_id = p_pricing_phase_id
AND a.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
AND a.pricing_status_code = G_STATUS_NEW
AND a.LINE_DETAIL_INDEX IS NOT NULL;
attributes having operator Between or Not = for all selected modifier line
after line level pattern matching.
*/
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,
EXCLUDER_FLAG,
PRICING_PHASE_ID,
LINE_DETAIL_TYPE_CODE,
MODIFIER_LEVEL_CODE,
--SEGMENT_ID,
derived_qualifier_flag
)
SELECT /*+ ORDERED index(qpq QP_QUALIFIERS_N1) index(qplines qp_preq_line_attrs_tmp_n8) index(qppatq QP_PREQ_PATRN_QUAL_T_N2) */
qppatq.LINE_INDEX, --LINE_INDEX,
NULL, -- LINE_DETAIL_INDEX,
qplines.ATTRIBUTE_LEVEL, -- ATTRIBUTE_LEVEL,
QP_PREQ_GRP.G_QUALIFIER_TYPE, -- ATTRIBUTE_TYPE,
qppatq.LIST_HEADER_ID, -- LIST_HEADER_ID,
qppatq.LIST_LINE_ID, -- LIST_LINE_ID,
qpq.QUALIFIER_CONTEXT, -- CONTEXT,
qpq.QUALIFIER_ATTRIBUTE,-- ATTRIBUTE,
qplines.VALUE_FROM, -- VALUE_FROM,
qpq.QUALIFIER_ATTR_VALUE, --SETUP_VALUE_FROM,
qplines.VALUE_TO, -- VALUE_TO,
qpq.QUALIFIER_ATTR_VALUE_TO, -- SETUP_VALUE_TO,
qpq.QUALIFIER_GROUPING_NO, -- GROUPING_NUMBER,
qpq.COMPARISON_OPERATOR_CODE, -- COMPARISON_OPERATOR_TYPE_CODE,
qplines.VALIDATED_FLAG, -- VALIDATED_FLAG,
qplines.APPLIED_FLAG, -- APPLIED_FLAG,
p_stage,-- PRICING_STATUS_CODE,
'LINE QUALIFIERS - OPR_BET_NEQ', -- PRICING_STATUS_TEXT,
qpq.QUALIFIER_PRECEDENCE, -- QUALIFIER_PRECEDENCE,
qpq.QUALIFIER_DATATYPE, -- DATATYPE,
QP_PREQ_GRP.G_NO, --PRICING_ATTR_FLAG,
'LQ', -- QUALIFIER_TYPE,
qpq.EXCLUDER_FLAG, --EXCLUDER_FLAG,
p_pricing_phase_id, -- PRICING_PHASE_ID,
qplines.LINE_DETAIL_TYPE_CODE, -- LINE_DETAIL_TYPE_CODE,
qppatq.MODIFIER_LEVEL_CODE, -- MODIFIER_LEVEL_CODE,
--qplines.SEGMENT_ID,
qplines.derived_qualifier_flag
FROM
QP_PREQ_PATRN_QUAL_TMP qppatq,
qp_qualifiers qpq,
qp_npreq_line_attrs_tmp qplines
WHERE
qppatq.pricing_phase_id = p_pricing_phase_id
AND qppatq.stage = p_stage
AND qpq.LIST_HEADER_ID = qppatq.LIST_HEADER_ID
AND qppatq.list_line_id <> -1
AND qpq.list_line_id = qppatq.list_line_id
AND qpq.QUALIFIER_GROUPING_NO = qppatq.GROUPING_NO
AND qpq.COMPARISON_OPERATOR_CODE IN (QP_PREQ_GRP.G_OPERATOR_BETWEEN, G_OPERATOR_NOT_EQL)
AND qplines.SEGMENT_ID = qpq.SEGMENT_ID
AND qplines.LINE_INDEX = qppatq.LINE_INDEX
AND qppatq.eq_flag = G_NO
AND ((nvl(qplines.DERIVED_QUALIFIER_FLAG,'N')='N')
OR (qplines.DERIVED_QUALIFIER_FLAG = 'Y' AND QPQ.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
UNION all
-- -1 qualifiers if other group exist
SELECT /*+ ORDERED index(qpq QP_QUALIFIERS_N1) index(qplines qp_preq_line_attrs_tmp_n8) index(qppatq QP_PREQ_PATRN_QUAL_T_N2) */
qppatq.LINE_INDEX, --LINE_INDEX,
null, -- LINE_DETAIL_INDEX,
qplines.ATTRIBUTE_LEVEL, -- ATTRIBUTE_LEVEL,
QP_PREQ_GRP.G_QUALIFIER_TYPE, -- ATTRIBUTE_TYPE,
qppatq.LIST_HEADER_ID, -- LIST_HEADER_ID,
qppatq.LIST_LINE_ID, -- LIST_LINE_ID,
qpq.QUALIFIER_CONTEXT, -- CONTEXT,
qpq.QUALIFIER_ATTRIBUTE,-- ATTRIBUTE,
qplines.VALUE_FROM, -- VALUE_FROM,
qpq.QUALIFIER_ATTR_VALUE, --SETUP_VALUE_FROM,
qplines.VALUE_TO, -- VALUE_TO,
qpq.QUALIFIER_ATTR_VALUE_TO, -- SETUP_VALUE_TO,
qpq.QUALIFIER_GROUPING_NO, -- GROUPING_NUMBER,
qpq.COMPARISON_OPERATOR_CODE, -- COMPARISON_OPERATOR_TYPE_CODE,
qplines.VALIDATED_FLAG, -- VALIDATED_FLAG,
qplines.APPLIED_FLAG, -- APPLIED_FLAG,
p_stage,-- PRICING_STATUS_CODE,
'LINE QUALIFIERS - OPR_BET_NEQ', -- PRICING_STATUS_TEXT,
qpq.QUALIFIER_PRECEDENCE, -- QUALIFIER_PRECEDENCE,
qpq.QUALIFIER_DATATYPE, -- DATATYPE,
QP_PREQ_GRP.G_NO, --PRICING_ATTR_FLAG,
'LQ', -- QUALIFIER_TYPE,
qpq.EXCLUDER_FLAG, --EXCLUDER_FLAG,
p_pricing_phase_id, -- PRICING_PHASE_ID,
qplines.LINE_DETAIL_TYPE_CODE, -- LINE_DETAIL_TYPE_CODE,
qppatq.MODIFIER_LEVEL_CODE, -- MODIFIER_LEVEL_CODE,
--qplines.SEGMENT_ID,
qplines.derived_qualifier_flag
FROM
QP_PREQ_PATRN_QUAL_TMP qppatq,
qp_qualifiers qpq,
qp_npreq_line_attrs_tmp qplines
WHERE
qppatq.pricing_phase_id = p_pricing_phase_id
AND qppatq.stage = p_stage
AND qpq.LIST_HEADER_ID = qppatq.LIST_HEADER_ID
AND qppatq.list_line_id <> -1
AND qpq.list_line_id = qppatq.list_line_id
AND qpq.QUALIFIER_GROUPING_NO = -1
AND qpq.COMPARISON_OPERATOR_CODE IN (QP_PREQ_GRP.G_OPERATOR_BETWEEN, G_OPERATOR_NOT_EQL)
AND qppatq.null_other_oprt_count > 0
AND qplines.SEGMENT_ID = qpq.SEGMENT_ID
AND qplines.LINE_INDEX = qppatq.LINE_INDEX
AND qppatq.eq_flag = G_NO
AND ((nvl(qplines.DERIVED_QUALIFIER_FLAG,'N')='N')
OR (qplines.DERIVED_QUALIFIER_FLAG = 'Y' AND QPQ.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')); -- Added for TCA
qp_preq_grp.engine_debug('Successfully inserted Line level BETWEEN , Not = Qualifiers Attributes in table qp_npreq_line_attrs_tmp');
having operator Between or Not = for all selected modifier line after line
level pattern matching.
*/
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,
--SEGMENT_ID,
derived_qualifier_flag
)
SELECT /*+ index(qplaptr qp_preq_line_attrs_tmp_n8) */
qppat.LINE_INDEX, --LINE_INDEX
NULL, --LINE_DETAIL_INDEX
qplaptr.ATTRIBUTE_LEVEL, --ATTRIBUTE_LEVEL
QP_PREQ_GRP.G_PRICING_TYPE, --ATTRIBUTE_TYPE
qppat.list_header_id, --LIST_HEADER_ID
qppat.list_line_id, --LIST_LINE_ID
qppatr.PRICING_ATTRIBUTE_CONTEXT, --CONTEXT
qppatr.PRICING_ATTRIBUTE, --ATTRIBUTE
qplaptr.VALUE_FROM, --VALUE_FROM
qppatr.PRICING_ATTR_VALUE_FROM,--SETUP_VALUE_FROM
qplaptr.VALUE_TO,--VALUE_TO
qppatr.PRICING_ATTR_VALUE_TO,--SETUP_VALUE_TO
-1,--GROUPING_NUMBER
qppatr.COMPARISON_OPERATOR_CODE,--COMPARISON_OPERATOR_TYPE_CODE
qplaptr.VALIDATED_FLAG,--VALIDATED_FLAG
qplaptr.APPLIED_FLAG,--APPLIED_FLAG
p_stage,--QP_PREQ_GRP.G_STATUS_UNCHANGED,--PRICING_STATUS_CODE --Check this attribute
'Pricing Attribute - OPR_BET_NEQ',--PRICING_STATUS_TEXT --Check this attribute
NULL,--QUALIFIER_PRECEDENCE
qppatr.PRICING_ATTRIBUTE_DATATYPE,--DATATYPE
qplaptr.PRICING_ATTR_FLAG,--PRICING_ATTR_FLAG
'NO',--QUALIFIER_TYPE
NULL, --qplines.PRODUCT_UOM_CODE, --PRODUCT_UOM_CODE
qppatr.excluder_flag, --EXCLUDER_FLAG
qppat.pricing_phase_id, --PRICING_PHASE_ID
NULL, --qplines.INCOMPATIBILITY_GRP_CODE, --INCOMPATABILITY_GRP_CODE
'NULL', --LINE_DETAIL_TYPE_CODE
qppat.MODIFIER_LEVEL_CODE, --MODIFIER_LEVEL_CODE
NULL, --qplines.PRIMARY_UOM_FLAG, --PRIMARY_UOM_FLAG
--qplaptr.SEGMENT_ID, --SEGMENT_ID
qplaptr.derived_qualifier_flag
FROM
(
SELECT DISTINCT pricing_phase_id, line_index, list_header_id, list_line_id,
eq_flag, MODIFIER_LEVEL_CODE
FROM QP_PREQ_PATRN_QUAL_TMP
WHERE stage = p_stage
)qppat,
QP_PRICING_ATTRIBUTES qppatr,
qp_npreq_line_attrs_tmp qplaptr
WHERE qppat.pricing_phase_id = p_pricing_phase_id
AND qppatr.list_line_id = qppat.list_line_id
AND qppatr.excluder_flag = G_NO
AND qppat.eq_flag = G_NO
AND qppatr.pricing_attribute_context IS NOT NULL
AND qppatr.COMPARISON_OPERATOR_CODE IN (QP_PREQ_GRP.G_OPERATOR_BETWEEN, G_OPERATOR_NOT_EQL)
AND qplaptr.LINE_INDEX = qppat.LINE_INDEX
AND qplaptr.segment_id = qppatr.PRICING_SEGMENT_ID
AND qplaptr.attribute_type = G_PRICING_TYPE;
qp_preq_grp.engine_debug('Successfully inserted BETWEEN , Not = Pricing Attributes in table qp_npreq_line_attrs_tmp');
attributes having operator Between or Not = for all selected modifier line after
header level pattern matching.
*/
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,
EXCLUDER_FLAG,
PRICING_PHASE_ID,
LINE_DETAIL_TYPE_CODE,
MODIFIER_LEVEL_CODE,
--SEGMENT_ID,
derived_qualifier_flag
)
SELECT /*+ ORDERED index(qpq QP_QUALIFIERS_N1) index(qplines qp_preq_line_attrs_tmp_n8) index(qppatq QP_PREQ_PATRN_QUAL_T_N2) */
qppatq.LINE_INDEX, --LINE_INDEX,
NULL, -- LINE_DETAIL_INDEX,
qplines.ATTRIBUTE_LEVEL, -- ATTRIBUTE_LEVEL,
QP_PREQ_GRP.G_QUALIFIER_TYPE, -- ATTRIBUTE_TYPE,
qppatq.LIST_HEADER_ID, -- LIST_HEADER_ID,
qppatq.LIST_LINE_ID, -- LIST_LINE_ID,
qpq.QUALIFIER_CONTEXT, -- CONTEXT,
qpq.QUALIFIER_ATTRIBUTE,-- ATTRIBUTE,
qplines.VALUE_FROM, -- VALUE_FROM,
qpq.QUALIFIER_ATTR_VALUE, --SETUP_VALUE_FROM,
qplines.VALUE_TO, -- VALUE_TO,
qpq.QUALIFIER_ATTR_VALUE_TO, -- SETUP_VALUE_TO,
qpq.QUALIFIER_GROUPING_NO, -- GROUPING_NUMBER,
qpq.COMPARISON_OPERATOR_CODE, -- COMPARISON_OPERATOR_TYPE_CODE,
qplines.VALIDATED_FLAG, -- VALIDATED_FLAG,
qplines.APPLIED_FLAG, -- APPLIED_FLAG,
p_stage,-- PRICING_STATUS_CODE,
'HEADER QUALIFIERS - OPR_BET_NEQ', -- PRICING_STATUS_TEXT,
qpq.QUALIFIER_PRECEDENCE, -- QUALIFIER_PRECEDENCE,
qpq.QUALIFIER_DATATYPE, -- DATATYPE,
QP_PREQ_GRP.G_NO, --PRICING_ATTR_FLAG,
'HQ', -- QUALIFIER_TYPE,
qpq.EXCLUDER_FLAG, --EXCLUDER_FLAG,
p_pricing_phase_id, -- PRICING_PHASE_ID,
qplines.LINE_DETAIL_TYPE_CODE, -- LINE_DETAIL_TYPE_CODE,
qppatq.MODIFIER_LEVEL_CODE, -- MODIFIER_LEVEL_CODE,
--qplines.SEGMENT_ID,
qplines.derived_qualifier_flag
FROM
QP_PREQ_PATRN_QUAL_TMP qppatq,
qp_qualifiers qpq,
qp_npreq_line_attrs_tmp qplines
WHERE
qppatq.pricing_phase_id = p_pricing_phase_id
AND qppatq.stage = p_stage
AND qpq.LIST_HEADER_ID = qppatq.LIST_HEADER_ID
AND qppatq.list_line_id = -1
AND qpq.list_line_id = -1
AND qpq.QUALIFIER_GROUPING_NO = qppatq.GROUPING_NO
AND qpq.COMPARISON_OPERATOR_CODE IN (QP_PREQ_GRP.G_OPERATOR_BETWEEN, G_OPERATOR_NOT_EQL)
AND qplines.SEGMENT_ID = qpq.SEGMENT_ID
AND qplines.LINE_INDEX = qppatq.LINE_INDEX
AND qppatq.eq_flag = G_NO
AND ((nvl(qplines.DERIVED_QUALIFIER_FLAG,'N')='N')
OR (qplines.DERIVED_QUALIFIER_FLAG = 'Y' AND QPQ.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
UNION all
-- -1 qualifiers if other group exist
SELECT /*+ ORDERED index(qpq QP_QUALIFIERS_N1)
index(qplines qp_preq_line_attrs_tmp_n8)
index(qppatq QP_PREQ_PATRN_QUAL_T_N2) */
DISTINCT qppatq.LINE_INDEX, --LINE_INDEX,
null, -- LINE_DETAIL_INDEX,
qplines.ATTRIBUTE_LEVEL, -- ATTRIBUTE_LEVEL,
QP_PREQ_GRP.G_QUALIFIER_TYPE, -- ATTRIBUTE_TYPE,
qppatq.LIST_HEADER_ID, -- LIST_HEADER_ID,
qppatq.LIST_LINE_ID, -- LIST_LINE_ID,
qpq.QUALIFIER_CONTEXT, -- CONTEXT,
qpq.QUALIFIER_ATTRIBUTE,-- ATTRIBUTE,
qplines.VALUE_FROM, -- VALUE_FROM,
qpq.QUALIFIER_ATTR_VALUE, --SETUP_VALUE_FROM,
qplines.VALUE_TO, -- VALUE_TO,
qpq.QUALIFIER_ATTR_VALUE_TO, -- SETUP_VALUE_TO,
qpq.QUALIFIER_GROUPING_NO, -- GROUPING_NUMBER,
qpq.COMPARISON_OPERATOR_CODE, -- COMPARISON_OPERATOR_TYPE_CODE,
qplines.VALIDATED_FLAG, -- VALIDATED_FLAG,
qplines.APPLIED_FLAG, -- APPLIED_FLAG,
p_stage,-- PRICING_STATUS_CODE,
'HEADER QUALIFIERS - OPR_BET_NEQ', -- PRICING_STATUS_TEXT,
qpq.QUALIFIER_PRECEDENCE, -- QUALIFIER_PRECEDENCE,
qpq.QUALIFIER_DATATYPE, -- DATATYPE,
QP_PREQ_GRP.G_NO, --PRICING_ATTR_FLAG,
'HQ', -- QUALIFIER_TYPE,
qpq.EXCLUDER_FLAG, --EXCLUDER_FLAG,
p_pricing_phase_id, -- PRICING_PHASE_ID,
qplines.LINE_DETAIL_TYPE_CODE, -- LINE_DETAIL_TYPE_CODE,
qppatq.MODIFIER_LEVEL_CODE, -- MODIFIER_LEVEL_CODE,
--qplines.SEGMENT_ID,
qplines.derived_qualifier_flag
FROM
QP_PREQ_PATRN_QUAL_TMP qppatq,
qp_qualifiers qpq,
qp_npreq_line_attrs_tmp qplines
WHERE
qppatq.pricing_phase_id = p_pricing_phase_id
AND qppatq.stage = p_stage
AND qpq.LIST_HEADER_ID = qppatq.LIST_HEADER_ID
AND qppatq.list_line_id = -1
AND qpq.list_line_id = -1
AND qpq.QUALIFIER_GROUPING_NO = -1
AND qpq.COMPARISON_OPERATOR_CODE IN (QP_PREQ_GRP.G_OPERATOR_BETWEEN, G_OPERATOR_NOT_EQL)
AND qppatq.null_other_oprt_count > 0
AND qppatq.GROUPING_NO <> -1
AND qplines.SEGMENT_ID = qpq.SEGMENT_ID
AND qplines.LINE_INDEX = qppatq.LINE_INDEX
AND qppatq.eq_flag = G_NO
AND ((nvl(qplines.DERIVED_QUALIFIER_FLAG,'N')='N')
OR (qplines.DERIVED_QUALIFIER_FLAG = 'Y' AND QPQ.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')); -- Added for TCA
qp_preq_grp.engine_debug('Successfully inserted Header level BETWEEN , Not = Qualifiers Attributes in table qp_npreq_line_attrs_tmp');
SELECT LINE_TMP.LINE_INDEX L_INDEX,
ATTRS_TMP1.VALUE_FROM PRICE_LIST_HEADER_ID,
LINE_TMP.LINE_QUANTITY LINE_QUANTITY,
LINE_TMP.LINE_UOM_CODE LINE_UOM_CODE
FROM QP_NPREQ_LINES_TMP LINE_TMP ,
QP_NPREQ_LINE_ATTRS_TMP ATTRS_TMP,
QP_NPREQ_LINE_ATTRS_TMP ATTRS_TMP1
WHERE LINE_TMP.LINE_INDEX=ATTRS_TMP.LINE_INDEX
AND LINE_TMP.LINE_INDEX=ATTRS_TMP1.LINE_INDEX
AND ATTRS_TMP.CONTEXT = G_LIST_HEADER_CONTEXT
AND ATTRS_TMP.ATTRIBUTE = G_IGN_PRIC_ATTRIBUTE
AND ATTRS_TMP.VALUE_FROM = G_YES
--AND LINE_TMP.PRICE_FLAG='N'
AND ATTRS_TMP1.LINE_INDEX=ATTRS_TMP.LINE_INDEX
AND ATTRS_TMP1.CONTEXT = G_LIST_HEADER_CONTEXT
AND ATTRS_TMP1.ATTRIBUTE = G_DEF_PL_HDR_ID_ATTRIBUTE ;
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
nvl(QPEP.pattern_search_path,nvl(QPP.pattern_search_path,G_PAT_SEARCH_PATH)) pattern_search_path,
DECODE(nvl(QPEP.pattern_search_path,nvl(QPP.pattern_search_path,G_PAT_SEARCH_PATH)),1,'Search Headers First','Search Lines First') pattern_search_path_desc
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 /*+ INDEX(qp_npreq_ldets_tmp QP_PREQ_LDETS_TMP_N2) */ 'X' --bug 14464004
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 '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
SELECT DECODE(G_PAT_SEARCH_PATH,1,'Search Headers First','Search Lines First') INTO l_patrn_srch_path_desc FROM dual;
SELECT COUNT(*) INTO l_lines_cnt FROM qp_npreq_lines_tmp;
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;
UPDATE qp_npreq_lines_tmp
SET
price_flag = G_NO,
PRICE_LIST_HEADER_ID = l_price_list_header_id_tbl(i),
LINE_UNIT_PRICE = 0,
UOM_QUANTITY = l_line_quantity_tbl(i),
PRICED_QUANTITY = l_line_quantity_tbl(i),
PRICED_UOM_CODE = l_line_uom_code_tbl(i),
UNIT_PRICE = 0,
ADJUSTED_UNIT_PRICE = 0,
processed_flag =G_YES,
PRICING_STATUS_CODE =G_STATUS_UPDATED
WHERE LINE_INDEX = l_line_index_tbl(i);
/*+------------------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);
SELECT pte_code
INTO G_PTE_CODE
FROM QP_PTE_REQUEST_TYPES_B
WHERE request_type_code = G_REQUEST_TYPE_CODE;
SELECT MIN(line_index), MAX(line_index)
INTO G_MIN_LINE_INDEX,G_MAX_LINE_INDEX
FROM QP_NPREQ_LINES_TMP;
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_PATRNS_TWO_THREE_INSERTED := 'N'; --smuhamme, whethe pattern_id -2 and -3 inserted or not
G_INSERT_INTO_FORMULA_TMP := TRUE;
Update_Price_List_Information(I.freeze_override_flag, l_return_status, l_status_text); -- fix bug 2756754
SELECT_PRICE_LIST_LINES_PAT(
p_pricing_phase_id => I.pricing_phase_id,
p_freeze_override_flag => I.freeze_override_flag,
p_search_path => I.pattern_search_path,
p_control_rec => p_control_rec,
x_status_code => l_return_status,
x_status_text => l_status_text
);
-- SELECT_PRICE_LIST_LINES_PATRN API CALL -- DEEPAK ADD CODE
END IF;
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;
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_Distinct_Qualifier_Flag(l_return_status,l_status_text);
--KDURGASI changes for pattern based select modifiers
IF G_QP_PATTERN_SEARCH IN (G_QP_PATTERN_MOD_SEARCH, G_QP_PATTERN_BOTH_SEARCH) THEN
qp_debug_util.tstart('PATRN_SELECT_MODIFIERS','Modifier Selection - SELECT_MODIFIERS API');
Select_modifiers_patrn (p_pricing_phase_id => I.pricing_phase_id,
p_freeze_override_flag => I.freeze_override_flag,
p_search_path => I.pattern_search_path,
x_status_code => l_return_status,
x_status_text => l_status_text);
engine_debug('Select_modifiers_patrn-success-'||l_return_status);
qp_debug_util.tstop('PATRN_SELECT_MODIFIERS');
ELSE --KDURGASI changes for pattern based select modifiers
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');
IF G_QP_PATTERN_SEARCH NOT IN (G_QP_PATTERN_MOD_SEARCH, G_QP_PATTERN_BOTH_SEARCH) THEN --KDURGASI changes for pattern based select modifiers
-- Check for multiple item categories and customer classes
Eliminate_Multiple_Hierarchies(I.pricing_phase_id,l_return_status,l_status_text);
END IF; --KDURGASI changes for pattern based 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 ';