DBA Data[Home] [Help]

APPS.QP_PREQ_GRP SQL Statements

The following lines contain the word 'select', 'insert', 'update' or 'delete':

Line: 91

 G_UPDATED_FLAG_TBL            VARCHAR_TYPE; -- 3215497
Line: 139

  G_SELECTED_VOLUME_ATTR_TBL         VARCHAR_TYPE;
Line: 347

  G_INSERT_INTO_FORMULA_TMP      BOOLEAN ; -- Change
Line: 438

  | 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';
Line: 450

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]
Line: 471

  p_price_list_id_tbl.delete;
Line: 472

  p_currency_code_tbl.delete;
Line: 473

  p_pricing_eff_date_tbl.delete;
Line: 512

   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
Line: 520

     engine_debug('Number of lines updated with rounding factor : ' || SQL%ROWCOUNT);
Line: 553

   QP_COPY_DEBUG_PVT.INSERT_DEBUG_LINE(p_text);
Line: 573

  |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';
Line: 625

      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
Line: 757

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
Line: 1582

  G_LIST_HEADER_ID_TBL_Q.delete;
Line: 1583

  G_LIST_LINE_ID_TBL_Q.delete;
Line: 1584

  G_VALIDATED_FLAG_TBL_Q.delete;
Line: 1585

  G_APPLIED_FLAG_TBL_Q.delete;
Line: 1586

  G_ATTRIBUTE_LEVEL_TBL_Q.delete;
Line: 1587

  G_ATTRIBUTE_TYPE_TBL_Q.delete;
Line: 1588

  G_CONTEXT_TBL_Q.delete;
Line: 1589

  G_ATTRIBUTE_TBL_Q.delete;
Line: 1590

  G_VALUE_FROM_TBL_Q.delete;
Line: 1591

  G_GROUPING_NO_TBL_Q.delete;
Line: 1592

  G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
Line: 1593

  G_DATATYPE_TBL_Q.delete;
Line: 1594

  G_SETUP_VALUE_FROM_TBL_Q.delete;
Line: 1595

  G_SETUP_VALUE_TO_TBL_Q.delete;
Line: 1596

  G_PRICING_ATTR_FLAG_TBL_Q.delete;
Line: 1597

  G_OPERATOR_TYPE_TBL_Q.delete;
Line: 1598

  G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 1599

  G_LIST_TYPE_CODE_TBL_Q.delete;
Line: 1600

  G_ASK_FOR_FLAG_TBL_Q.delete;
Line: 1601

  G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
Line: 1602

  G_OTHERS_GROUP_CNT_TBL_Q.delete;
Line: 1603

  G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
Line: 1604

  G_SEARCH_IND_TBL_Q.delete;
Line: 1605

  G_PRICING_STATUS_CODE_TBL_Q.delete;
Line: 1606

  G_START_DATE_ACTIVE_TBL_Q.delete;
Line: 1607

  G_END_DATE_ACTIVE_TBL_Q.delete;
Line: 1608

  G_LINE_INDEX_TBL_Q.delete;
Line: 1609

  G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
Line: 1610

  G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 1611

  G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 1612

  G_LINE_TYPE_CODE_TBL_Q.delete;
Line: 1613

  G_PRICING_PHASE_ID_TBL_Q.delete;
Line: 1614

  G_UNIQUE_KEY_TBL_Q.delete;
Line: 1615

  G_START_DATE_ACTIVE_TBL_H_Q.delete;
Line: 1616

  G_END_DATE_ACTIVE_TBL_H_Q.delete;
Line: 1617

  G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 1618

  G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 1619

  G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
Line: 1620

  G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
Line: 1621

  G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
Line: 1622

  G_DERIVED_QUALIFIER_FLAG_TBL_Q.delete;   -- Added for TCA
Line: 1671

      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);
Line: 1767

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
Line: 2277

  G_LIST_HEADER_ID_TBL_Q.delete;
Line: 2278

  G_LIST_LINE_ID_TBL_Q.delete;
Line: 2279

  G_VALIDATED_FLAG_TBL_Q.delete;
Line: 2280

  G_APPLIED_FLAG_TBL_Q.delete;
Line: 2281

  G_ATTRIBUTE_LEVEL_TBL_Q.delete;
Line: 2282

  G_ATTRIBUTE_TYPE_TBL_Q.delete;
Line: 2283

  G_CONTEXT_TBL_Q.delete;
Line: 2284

  G_ATTRIBUTE_TBL_Q.delete;
Line: 2285

  G_VALUE_FROM_TBL_Q.delete;
Line: 2286

  G_GROUPING_NO_TBL_Q.delete;
Line: 2287

  G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
Line: 2288

  G_DATATYPE_TBL_Q.delete;
Line: 2289

  G_SETUP_VALUE_FROM_TBL_Q.delete;
Line: 2290

  G_SETUP_VALUE_TO_TBL_Q.delete;
Line: 2291

  G_PRICING_ATTR_FLAG_TBL_Q.delete;
Line: 2292

  G_OPERATOR_TYPE_TBL_Q.delete;
Line: 2293

  G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 2294

  G_LIST_TYPE_CODE_TBL_Q.delete;
Line: 2295

  G_ASK_FOR_FLAG_TBL_Q.delete;
Line: 2296

  G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
Line: 2297

  G_OTHERS_GROUP_CNT_TBL_Q.delete;
Line: 2298

  G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
Line: 2299

  G_SEARCH_IND_TBL_Q.delete;
Line: 2300

  G_PRICING_STATUS_CODE_TBL_Q.delete;
Line: 2301

  G_START_DATE_ACTIVE_TBL_Q.delete;
Line: 2302

  G_END_DATE_ACTIVE_TBL_Q.delete;
Line: 2303

  G_LINE_INDEX_TBL_Q.delete;
Line: 2304

  G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
Line: 2305

  G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 2306

  G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 2307

  G_LINE_TYPE_CODE_TBL_Q.delete;
Line: 2308

  G_PRICING_PHASE_ID_TBL_Q.delete;
Line: 2309

  G_UNIQUE_KEY_TBL_Q.delete;
Line: 2310

  G_START_DATE_ACTIVE_TBL_H_Q.delete;
Line: 2311

  G_END_DATE_ACTIVE_TBL_H_Q.delete;
Line: 2312

  G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 2313

  G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 2314

  G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
Line: 2315

  G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
Line: 2316

  G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
Line: 2317

  G_DERIVED_QUALIFIER_FLAG_TBL_Q.delete;    -- Added for TCA
Line: 2368

      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);
Line: 2424

	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');
Line: 2446

	engine_debug('Nitin - Delete headers - rows deleted '||sql%rowcount);
Line: 2487

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
Line: 2923

  G_LIST_HEADER_ID_TBL_Q.delete;
Line: 2924

  G_LIST_LINE_ID_TBL_Q.delete;
Line: 2925

  G_VALIDATED_FLAG_TBL_Q.delete;
Line: 2926

  G_APPLIED_FLAG_TBL_Q.delete;
Line: 2927

  G_ATTRIBUTE_LEVEL_TBL_Q.delete;
Line: 2928

  G_ATTRIBUTE_TYPE_TBL_Q.delete;
Line: 2929

  G_CONTEXT_TBL_Q.delete;
Line: 2930

  G_ATTRIBUTE_TBL_Q.delete;
Line: 2931

  G_VALUE_FROM_TBL_Q.delete;
Line: 2932

  G_GROUPING_NO_TBL_Q.delete;
Line: 2933

  G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
Line: 2934

  G_DATATYPE_TBL_Q.delete;
Line: 2935

  G_SETUP_VALUE_FROM_TBL_Q.delete;
Line: 2936

  G_SETUP_VALUE_TO_TBL_Q.delete;
Line: 2937

  G_PRICING_ATTR_FLAG_TBL_Q.delete;
Line: 2938

  G_OPERATOR_TYPE_TBL_Q.delete;
Line: 2939

  G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 2940

  G_LIST_TYPE_CODE_TBL_Q.delete;
Line: 2941

  G_ASK_FOR_FLAG_TBL_Q.delete;
Line: 2942

  G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
Line: 2943

  G_OTHERS_GROUP_CNT_TBL_Q.delete;
Line: 2944

  G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
Line: 2945

  G_SEARCH_IND_TBL_Q.delete;
Line: 2946

  G_PRICING_STATUS_CODE_TBL_Q.delete;
Line: 2947

  G_START_DATE_ACTIVE_TBL_Q.delete;
Line: 2948

  G_END_DATE_ACTIVE_TBL_Q.delete;
Line: 2949

  G_LINE_INDEX_TBL_Q.delete;
Line: 2950

  G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
Line: 2951

  G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 2952

  G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 2953

  G_LINE_TYPE_CODE_TBL_Q.delete;
Line: 2954

  G_PRICING_PHASE_ID_TBL_Q.delete;
Line: 2955

  G_UNIQUE_KEY_TBL_Q.delete;
Line: 2956

  G_START_DATE_ACTIVE_TBL_H_Q.delete;
Line: 2957

  G_END_DATE_ACTIVE_TBL_H_Q.delete;
Line: 2958

  G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 2959

  G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 2960

  G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
Line: 2961

  G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
Line: 2962

  G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
Line: 2963

  G_DERIVED_QUALIFIER_FLAG_TBL_Q.delete;   -- Added for TCA
Line: 3014

      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);
Line: 3082

 G_LINE_INDEX_tbl.delete;
Line: 3083

 G_USAGE_PRICING_TYPE_TBL.delete;
Line: 3084

 G_LINE_CATEGORY_TBL.delete;
Line: 3085

 G_LINE_CATEGORY_DEF_TBL.delete;
Line: 3086

 G_CONTRACT_START_DATE_TBL.delete;	/* shulin */
Line: 3087

 G_CONTRACT_END_DATE_TBL.delete;	/* shulin */
Line: 3088

 G_LINE_UNIT_PRICE_TBL.delete;	/* shu_latest */
Line: 3089

 G_CONTRACT_START_DATE_DEF_TBL.delete;	/* shulin */
Line: 3090

 G_CONTRACT_END_DATE_DEF_TBL.delete;	/* shulin */
Line: 3091

 G_LINE_UNIT_PRICE_DEF_TBL.delete;	/* shu_latest */
Line: 3092

 G_CHARGE_PERIODICITY_CODE_TBL.delete;
Line: 3093

 G_CURRENCY_HEADER_ID_DEF_TBL.delete;    /* vivek */
Line: 3094

 G_SELLING_ROUNDING_DEF_TBL.delete;    /* vivek */
Line: 3095

 G_ORDER_CURRENCY_DEF_TBL.delete;        /* vivek */
Line: 3096

 G_PRICING_EFF_DATE_DEF_TBL.delete;      /* vivek */
Line: 3097

 G_BASE_CURRENCY_DEF_TBL.delete;         /* vivek */
Line: 3098

 G_CURRENCY_DETAIL_ID_DEF_TBL.delete;    /* sunilpandey */
Line: 3100

 G_LINE_DETAIL_INDEX_tbl.delete;
Line: 3101

 G_ATTRIBUTE_LEVEL_tbl.delete;
Line: 3102

 G_ATTRIBUTE_TYPE_tbl.delete;
Line: 3103

 G_LIST_HEADER_ID_tbl.delete;
Line: 3104

 G_LIST_LINE_ID_tbl.delete;
Line: 3105

 G_CONTEXT_tbl.delete;
Line: 3106

 G_ATTRIBUTE_tbl.delete;
Line: 3107

 G_VALUE_FROM_tbl.delete;
Line: 3108

 G_SETUP_VALUE_FROM_tbl.delete;
Line: 3109

 G_VALUE_TO_tbl.delete;
Line: 3110

 G_SETUP_VALUE_TO_tbl.delete;
Line: 3111

 G_GROUPING_NUMBER_tbl.delete;
Line: 3112

 G_NO_QUALIFIERS_IN_GRP_tbl.delete;
Line: 3113

 G_COMPARISON_OPERATOR_TYPE_tbl.delete;
Line: 3114

 G_VALIDATED_FLAG_tbl.delete;
Line: 3115

 G_APPLIED_FLAG_tbl.delete;
Line: 3116

 G_PRICING_STATUS_CODE_tbl.delete;
Line: 3117

 G_PRICING_STATUS_TEXT_tbl.delete;
Line: 3118

 G_QUALIFIER_PRECEDENCE_tbl.delete;
Line: 3119

 G_DATATYPE_tbl.delete;
Line: 3120

 G_PRICING_ATTR_FLAG_tbl.delete;
Line: 3121

 G_QUALIFIER_TYPE_tbl.delete;
Line: 3122

 G_product_uom_code_tbl.delete;
Line: 3124

 G_ROUNDING_FLAG_TBL.delete;
Line: 3125

 G_LINE_TYPE_CODE_TBL.delete          ;
Line: 3126

 G_PRICING_EFFECTIVE_DATE_TBL.delete  ;
Line: 3127

 G_ACTIVE_DATE_FIRST_TBL.delete       ;
Line: 3128

 G_ACTIVE_DATE_FIRST_TYPE_TBL.delete  ;
Line: 3129

 G_ACTIVE_DATE_SECOND_TBL.delete      ;
Line: 3130

 G_ACTIVE_DATE_SECOND_TYPE_TBL.delete ;
Line: 3131

 G_LINE_QUANTITY_TBL.delete           ;
Line: 3132

 G_LINE_UOM_CODE_TBL.delete           ;
Line: 3133

 G_REQUEST_TYPE_CODE_TBL.delete       ;
Line: 3134

 G_PRICED_QUANTITY_TBL.delete         ;
Line: 3135

 G_UOM_QUANTITY_TBL.delete         ;
Line: 3136

 G_PRICED_UOM_CODE_TBL.delete         ;
Line: 3137

 G_CURRENCY_CODE_TBL.delete           ;
Line: 3138

 G_UNIT_PRICE_TBL.delete              ;
Line: 3139

 G_PERCENT_PRICE_TBL.delete           ;
Line: 3140

 G_ADJUSTED_UNIT_PRICE_TBL.delete     ;
Line: 3141

 G_UPD_ADJUSTED_UNIT_PRICE_TBL.delete;
Line: 3142

 G_PROCESSED_FLAG_TBL.delete          ;
Line: 3143

 G_PRICE_FLAG_TBL.delete              ;
Line: 3144

 G_LINE_ID_TBL.delete                 ;
Line: 3145

 G_PROCESSING_ORDER_TBL.delete        ;
Line: 3146

 G_EXCLUDER_FLAG_TBL.delete               ;
Line: 3147

 G_PRICE_REQUEST_CODE_TBL.delete;
Line: 3148

 G_HEADER_LIMIT_EXISTS_TBL.delete;
Line: 3149

 G_LINE_LIMIT_EXISTS_TBL.delete;
Line: 3150

 G_CHARGE_TYPE_CODE_TBL.delete;
Line: 3151

 G_CHARGE_SUBTYPE_CODE_TBL.delete;
Line: 3152

 G_CURRENCY_HEADER_ID_TBL.delete;           /* vivek */
Line: 3153

 G_SELLING_ROUNDING_TBL.delete;           /* vivek */
Line: 3154

 G_ORDER_CURRENCY_TBL.delete;               /* vivek */
Line: 3155

 G_BASE_CURRENCY_CODE_TBL.delete;           /* vivek */
Line: 3156

 G_CURRENCY_DETAIL_ID_TBL.delete;           /* sunilpandey */
Line: 3157

 G_ACCUM_CONTEXT_TBL.delete;   -- accum range break
Line: 3158

 G_ACCUM_ATTRIBUTE_TBL.delete; -- accum range break
Line: 3159

 G_ACCUM_FLAG_TBL.delete;      -- accum range break
Line: 3160

 G_UPDATED_FLAG_TBL.delete;       -- 3215497
Line: 3161

 G_CALCULATION_CODE_TBL.delete;   -- 3215497
Line: 3162

 G_CHANGE_REASON_CODE_TBL.delete; -- 3215497
Line: 3163

 G_CHANGE_REASON_TEXT_TBL.delete; -- 3215497
Line: 3164

 G_PROCESS_CODE_TBL.delete;       -- 3215497
Line: 3165

  G_LINE_DETAIL_TYPE_CODE_TBL.delete        ;
Line: 3166

  G_PRICE_BREAK_TYPE_CODE_TBL.delete        ;
Line: 3167

  G_LIST_PRICE_TBL.delete                   ;
Line: 3168

  G_LIST_LINE_TYPE_TBL.delete               ;
Line: 3169

  G_LIST_TYPE_CODE_TBL.delete               ;
Line: 3170

  G_CREATED_FROM_SQL_TBL.delete             ;
Line: 3171

  G_PRICING_GROUP_SEQUENCE_TBL.delete       ;
Line: 3172

  G_PRICING_PHASE_ID_TBL.delete             ;
Line: 3173

  G_OPERAND_CALCULATION_CODE_TBL.delete     ;
Line: 3174

  G_OPERAND_VALUE_TBL.delete                ;
Line: 3175

  G_SUBSTITUTION_TYPE_CODE_TBL.delete       ;
Line: 3176

  G_SUBSTITUTION_VALUE_FROM_TBL.delete      ;
Line: 3177

  G_SUBSTITUTION_VALUE_TO_TBL.delete        ;
Line: 3178

  G_ASK_FOR_FLAG_TBL.delete                 ;
Line: 3179

  G_PRICE_FORMULA_ID_TBL.delete             ;
Line: 3180

  G_PRODUCT_PRECEDENCE_TBL.delete           ;
Line: 3181

  G_INCOMP_GRP_CODE_TBL.delete              ;
Line: 3182

  G_AUTOMATIC_FLAG_TBL.delete               ;
Line: 3183

  G_OVERRIDE_FLAG_TBL.delete                ;
Line: 3184

  G_PRIMARY_UOM_FLAG_TBL.delete             ;
Line: 3185

  G_PRINT_ON_INVOICE_FLAG_TBL.delete        ;
Line: 3186

  G_MODIFIER_LEVEL_CODE_TBL.delete          ;
Line: 3187

  G_BENEFIT_QTY_TBL.delete                  ;
Line: 3188

  G_BENEFIT_UOM_CODE_TBL.delete             ;
Line: 3189

  G_SERVICE_DURATION_TBL.delete		    ; -- SERVICE PROJECT
Line: 3190

  G_SERVICE_PERIOD_TBL.delete		    ; -- SERVICE PROJECT
Line: 3191

  G_LIST_LINE_NO_TBL.delete                 ;
Line: 3192

  G_ACCRUAL_FLAG_TBL.delete                 ;
Line: 3193

  G_ACCRUAL_CONVERSION_RATE_TBL.delete      ;
Line: 3194

  G_ESTIM_ACCRUAL_RATE_TBL.delete           ;
Line: 3195

  G_RECURRING_FLAG_TBL.delete               ;
Line: 3196

  G_QUALIFIERS_EXIST_FLAG_TBL.delete;
Line: 3197

  G_PRICING_ATTRS_EXIST_FLAG_TBL.delete;
Line: 3198

  G_SELECTED_VOLUME_ATTR_TBL.delete         ;
Line: 3199

  G_ROUNDING_FACTOR_TBL.delete              ;
Line: 3200

  G_LINE_INDEX_LD_TBL.delete                ;
Line: 3201

  G_LINE_DETAIL_INDEX_LD_TBL.delete         ;
Line: 3202

  G_LIST_HEADER_ID_LD_TBL.delete            ;
Line: 3203

  G_LIST_LINE_ID_LD_TBL.delete              ;
Line: 3204

  G_PRICING_STATUS_CODE_LD_TBL.delete       ;
Line: 3205

  G_PRICING_STATUS_TEXT_LD_TBL.delete       ;
Line: 3206

  G_APPLIED_FLAG_LD_TBL.delete;
Line: 3207

  G_PROCESSED_FLAG_LD_TBL.delete;
Line: 3208

  G_LINE_INDEX_l_TBL.delete;
Line: 3209

  G_LINE_DETAIL_INDEX_l_TBL.delete;
Line: 3210

  G_PRICING_STATUS_CODE_L_TBL.delete;
Line: 3211

  G_PRICING_STATUS_TEXT_L_TBL.delete;
Line: 3213

  G_LIST_HEADER_ID_TBL_Q.delete;
Line: 3214

  G_LIST_LINE_ID_TBL_Q.delete;
Line: 3215

  G_LINE_INDEX_TBL_Q.delete;
Line: 3216

  G_VALIDATED_FLAG_TBL_Q.delete;
Line: 3217

  G_APPLIED_FLAG_TBL_Q.delete;
Line: 3218

  G_START_DATE_ACTIVE_TBL_Q.delete;
Line: 3219

  G_END_DATE_ACTIVE_TBL_Q.delete;
Line: 3220

  G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
Line: 3221

  G_LINE_TYPE_CODE_TBL_Q.delete;
Line: 3222

  G_ATTRIBUTE_LEVEL_TBL_Q.delete;
Line: 3223

  G_ATTRIBUTE_TYPE_TBL_Q.delete;
Line: 3224

  G_CONTEXT_TBL_Q.delete;
Line: 3225

  G_ATTRIBUTE_TBL_Q.delete;
Line: 3226

  G_VALUE_FROM_TBL_Q.delete;
Line: 3227

  G_GROUPING_NO_TBL_Q.delete;
Line: 3228

  G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
Line: 3229

  G_DATATYPE_TBL_Q.delete;
Line: 3230

  G_SETUP_VALUE_FROM_TBL_Q.delete;
Line: 3231

  G_SETUP_VALUE_TO_TBL_Q.delete;
Line: 3232

  G_PRICING_ATTR_FLAG_TBL_Q.delete;
Line: 3233

  G_OPERATOR_TYPE_TBL_Q.delete;
Line: 3234

  G_CURRENCY_CODE_TBL_Q.delete;
Line: 3235

  G_ASK_FOR_FLAG_TBL_Q.delete;
Line: 3236

  G_LIST_TYPE_CODE_TBL_Q.delete;
Line: 3237

  G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 3238

  G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
Line: 3239

  G_OTHERS_GROUP_CNT_TBL_Q.delete;
Line: 3240

  G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
Line: 3241

  G_SEARCH_IND_TBL_Q.delete;
Line: 3242

  G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
Line: 3243

  G_LIST_LINE_NO_TBL_Q.delete;
Line: 3245

  G_LINE_INDEX_TBL_P.delete;
Line: 3246

  G_LINE_DETAIL_INDEX_TBL_P.delete;
Line: 3247

  G_LIST_HEADER_ID_TBL_P.delete;
Line: 3248

  G_LIST_LINE_ID_TBL_P.delete;
Line: 3249

  G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
Line: 3250

  G_LIST_PRICE_TBL_P.delete;
Line: 3251

  G_LIST_LINE_TYPE_TBL_P.delete;
Line: 3252

  G_LIST_TYPE_CODE_TBL_P.delete;
Line: 3253

  G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
Line: 3254

  G_PRICING_PHASE_ID_TBL_P.delete;
Line: 3255

  G_OPER_CALCULATION_CODE_TBL_P.delete;
Line: 3256

  G_OPERAND_VALUE_TBL_P.delete;
Line: 3257

  G_ASK_FOR_FLAG_TBL_P.delete;
Line: 3258

  G_PRICE_FORMULA_ID_TBL_P.delete;
Line: 3259

  G_PRODUCT_PRECEDENCE_TBL_P.delete;
Line: 3260

  G_INCOMP_GRP_CODE_TBL_P.delete;
Line: 3261

  G_AUTOMATIC_FLAG_TBL_P.delete;
Line: 3262

  G_OVERRIDE_FLAG_TBL_P.delete;
Line: 3263

  G_PRIMARY_UOM_FLAG_TBL_P.delete;
Line: 3264

  G_PRINT_ON_INVOICE_FLAG_TBL_P.delete;
Line: 3265

  G_MODIFIER_LEVEL_CODE_TBL_P.delete;
Line: 3266

  G_BENEFIT_QTY_TBL_P.delete;
Line: 3267

  G_BENEFIT_UOM_CODE_TBL_P.delete;
Line: 3268

  G_SERVICE_DURATION_TBL_P.delete;  -- SERVICE PROJECT
Line: 3269

  G_SERVICE_PERIOD_TBL_P.delete;    -- SERVICE PROJECT
Line: 3270

  G_LIST_LINE_NO_TBL_P.delete;
Line: 3271

  G_ACCRUAL_FLAG_TBL_P.delete;
Line: 3272

  G_ACCR_CONVERSION_RATE_TBL_P.delete;
Line: 3273

  G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
Line: 3274

  G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 3275

  G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 3276

  G_CONTEXT_TBL_P.delete;
Line: 3277

  G_ATTRIBUTE_TBL_P.delete;
Line: 3278

  G_VALUE_FROM_TBL_P.delete;
Line: 3279

  G_SETUP_VALUE_FROM_TBL_P.delete;
Line: 3280

  G_VALIDATED_FLAG_TBL_P.delete;
Line: 3281

  G_APPLIED_FLAG_TBL_P.delete;
Line: 3282

  G_PRICING_ATTR_FLAG_TBL_P.delete;
Line: 3283

  G_GROUPING_NUMBER_TBL_P.delete;
Line: 3284

  G_QUALIFIER_PRECEDENCE_TBL_P.delete;
Line: 3285

  G_EXCLUDER_FLAG_TBL_P.delete;
Line: 3286

  G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 3287

  G_QUALIFIER_TYPE_TBL_P.delete;
Line: 3288

  G_ROUNDING_FACTOR_TBL_P.delete;
Line: 3289

  G_HEADER_LIMIT_EXISTS_TBL_P.delete;
Line: 3290

  G_LINE_LIMIT_EXISTS_TBL_P.delete;
Line: 3291

  G_CHARGE_TYPE_CODE_TBL_P.delete;
Line: 3292

  G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
Line: 3293

  G_CURRENCY_HEADER_ID_TBL_P.delete;      /* vivek */
Line: 3294

  G_SELLING_ROUNDING_TBL_P.delete;      /* vivek */
Line: 3295

  G_ORDER_CURRENCY_TBL_P.delete;          /* vivek */
Line: 3296

  G_PRICING_EFFECTIVE_DATE_TBL_P.delete;  /* vivek */
Line: 3297

  G_BASE_CURRENCY_CODE_TBL_P.delete;      /* vivek */
Line: 3298

  G_CURRENCY_DETAIL_ID_TBL_P.delete;      /* sunilpandey */
Line: 3299

  G_ACCUM_CONTEXT_TBL_P.delete;   -- accum range break
Line: 3300

  G_ACCUM_ATTRIBUTE_TBL_P.delete; -- accum range break
Line: 3301

  G_ACCUM_FLAG_TBL_P.delete;      -- accum range break
Line: 3303

  G_ATTRIBUTE_LEVEL_TBL_PR.delete;
Line: 3304

  G_ATTRIBUTE_TYPE_TBL_PR.delete;
Line: 3305

  G_CONTEXT_TBL_PR.delete;
Line: 3306

  G_ATTRIBUTE_TBL_PR.delete;
Line: 3307

  G_VALUE_FROM_TBL_PR.delete;
Line: 3308

  G_OPERATOR_TYPE_TBL_PR.delete;
Line: 3309

  G_SETUP_VALUE_FROM_TBL_PR.delete;
Line: 3310

  G_SETUP_VALUE_TO_TBL_PR.delete;
Line: 3311

  G_DATATYPE_TBL_PR.delete;
Line: 3313

  G_LINE_INDEX_TBL_B.delete;
Line: 3314

  G_LIST_HEADER_ID_TBL_B.delete;
Line: 3315

  G_LIST_LINE_ID_TBL_B.delete;
Line: 3316

  G_PRICE_BREAK_TYPE_CODE_TBL_B.delete;
Line: 3317

  G_LIST_PRICE_TBL_B.delete;
Line: 3318

  G_LIST_LINE_TYPE_TBL_B.delete;
Line: 3319

  G_LIST_TYPE_CODE_TBL_B.delete;
Line: 3320

  G_PRICING_GROUP_SEQUENCE_TBL_B.delete;
Line: 3321

  G_PRICING_PHASE_ID_TBL_B.delete;
Line: 3322

  G_OPER_CALCULATION_CODE_TBL_B.delete;
Line: 3323

  G_OPERAND_VALUE_TBL_B.delete;
Line: 3324

  G_ASK_FOR_FLAG_TBL_B.delete;
Line: 3325

  G_PRICE_FORMULA_ID_TBL_B.delete;
Line: 3326

  G_PRODUCT_PRECEDENCE_TBL_B.delete;
Line: 3327

  G_INCOMP_GRP_CODE_TBL_B.delete;
Line: 3328

  G_AUTOMATIC_FLAG_TBL_B.delete;
Line: 3329

  G_OVERRIDE_FLAG_TBL_B.delete;
Line: 3330

  G_PRIMARY_UOM_FLAG_TBL_B.delete;
Line: 3331

  G_PRINT_ON_INVOICE_FLAG_TBL_B.delete;
Line: 3332

  G_MODIFIER_LEVEL_CODE_TBL_B.delete;
Line: 3333

  G_BENEFIT_QTY_TBL_B.delete;
Line: 3334

  G_BENEFIT_UOM_CODE_TBL_B.delete;
Line: 3335

  G_SERVICE_DURATION_TBL_B.delete;  -- SERVICE PROJECT
Line: 3336

  G_SERVICE_PERIOD_TBL_B.delete;    -- SERVICE PROJECT
Line: 3337

  G_LIST_LINE_NO_TBL_B.delete;
Line: 3338

  G_ACCRUAL_FLAG_TBL_B.delete;
Line: 3339

  G_ACCR_CONVERSION_RATE_TBL_B.delete;
Line: 3340

  G_ESTIM_ACCRUAL_RATE_TBL_B.delete;
Line: 3341

  G_LINE_INDEX_TBL_G.delete;
Line: 3342

  G_LIST_HEADER_ID_TBL_G.delete;
Line: 3343

  G_LIST_LINE_ID_TBL_G.delete;
Line: 3344

  G_NO_OF_PATTS_IN_GRP_TBL_G.delete;
Line: 3346

  G_PRICING_PHASE_ID_TBL_A.delete;
Line: 3347

  G_INCOMP_GRP_CODE_TBL_A.delete;
Line: 3348

  G_LINE_DETAIL_TYPE_CODE_TBL_A.delete;
Line: 3349

  G_MODIFIER_LEVEL_CODE_TBL_A.delete;
Line: 3350

  G_PRIMARY_UOM_FLAG_TBL_A.delete;
Line: 3362

  |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;
Line: 3387

l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.Update_Processing_Order';
Line: 3394

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;
Line: 3408

       UPDATE qp_npreq_lines_tmp --upd1
       SET PROCESSING_ORDER = 1
       WHERE LINE_INDEX = l_line_index_tbl(I);
Line: 3414

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);
Line: 3428

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;
Line: 3481

   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;
Line: 3491

      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;
Line: 3507

        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;
Line: 3541

   UPDATE qp_npreq_lines_tmp --upd1
      SET PROCESSED_CODE = p_processed_code
      WHERE LINE_INDEX = p_line_index;
Line: 3552

        UPDATE qp_npreq_line_attrs_tmp      --upd2
        SET PROCESSED_CODE = p_processed_code
        WHERE LINE_INDEX = p_line_index;
Line: 3567

  |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';
Line: 3603

       SET_STATUS_CODE(G_STATUS_DELETED,
                       p_status_text,
                       P_LINE_INDEX,
                       NULL,
                      'ATTRS',
                       l_error_status_code,
                       l_error_status_text);
Line: 3615

       SET_STATUS_CODE(G_STATUS_DELETED,
                       p_status_text,
                       P_LINE_INDEX,
                       NULL,
                      'LDETS',
                       l_error_status_code,
                       l_error_status_text);
Line: 3640

END DELETE_LINES;
Line: 3643

  |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;
Line: 3660

 l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LINE_ATTRS2_AT';
Line: 3668

 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);
Line: 3687

 /*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));
Line: 3720

  |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';
Line: 3757

 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));
Line: 3779

  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
);
Line: 3806

  | 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';
Line: 3841

 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
                );
Line: 3902

  | 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';
Line: 3944

 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)
                );
Line: 4013

  | 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;
Line: 4051

l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LINE_ATTRS2_AT';
Line: 4058

 /*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)
                );*/
Line: 4121

 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
                );
Line: 4202

  | 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';
Line: 4260

 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)
                );
Line: 4328

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                   );
Line: 4375

  |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';
Line: 4411

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
                 );
Line: 4476

  |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;
Line: 4515

 l_routine VARCHAR2(240):='Routine:QP_PREQ_GRP.INSERT_LINES2_AT';
Line: 4522

/*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
     );*/
Line: 4587

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
     );
Line: 4669

  |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';
Line: 4728

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
Line: 4807

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            );
Line: 4854

  |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;
Line: 4902

l_routine VARCHAR2(240):='Routine:QP_PREQ_GRP.INSERT_LINES2_AT';
Line: 4908

    QP_PREQ_GRP.engine_debug('Before bulk inserting lines...');
Line: 4913

    /*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)
                 );*/
Line: 4997

    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
                 );
Line: 5101

  |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';
Line: 5273

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
                 );
Line: 5366

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
);
Line: 5413

G_LINE_CATEGORY_DEF_TBL.delete;
Line: 5414

G_CONTRACT_START_DATE_DEF_TBL.delete;
Line: 5415

G_CONTRACT_END_DATE_DEF_TBL.delete;
Line: 5416

G_LINE_UNIT_PRICE_DEF_TBL.delete;
Line: 5417

G_CATCHWEIGHT_QTY_DEF_TBL.delete;
Line: 5418

G_ACTUAL_ORDER_QTY_DEF_TBL.delete;
Line: 5419

G_LIST_PRICE_OVERRIDE_FLAG_TBL.delete;
Line: 5420

G_CHARGE_PERIODICITY_CODE_TBL.delete;
Line: 5433

  |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';
Line: 5504

 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 */
           );
Line: 5638

  |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';
Line: 5678

   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 */
          );
Line: 5750

  |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';
Line: 5796

 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 */
         );
Line: 5881

  |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;
Line: 5930

l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LDETS2_AT';
Line: 5935

 /*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)
          );*/
Line: 6024

 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
          );
Line: 6132

  |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';
Line: 6201

 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 */
          );
Line: 6300

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                 );
Line: 6361

  |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';
Line: 6414

   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));
Line: 6510

  |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;
Line: 6581

l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LDETS2';
Line: 6584

    QP_PREQ_GRP.engine_debug('G_LINE_DETAIL_INDEX b4 insert_ldets2 '||G_LINE_DETAIL_INDEX);
Line: 6590

  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
             );
Line: 6734

  |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';
Line: 6818

engine_debug('G_LINE_DETAIL_INDEX b4 insert_ldets2 '||G_LINE_DETAIL_INDEX);
Line: 6916

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;
Line: 6922

    G_UPDATED_FLAG_DEF_TBL(i) := p_UPDATED_FLAG(i);
Line: 7070

 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 */
             );
Line: 7204

  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                 );
Line: 7272

G_CURRENCY_DETAIL_ID_DEF_TBL.delete;
Line: 7273

G_CURRENCY_HEADER_ID_DEF_TBL.delete;
Line: 7274

G_SELLING_ROUNDING_DEF_TBL.delete;
Line: 7275

G_ORDER_CURRENCY_DEF_TBL.delete;
Line: 7276

G_PRICING_EFF_DATE_DEF_TBL.delete;
Line: 7277

G_BASE_CURRENCY_DEF_TBL.delete;
Line: 7278

G_LDET_LINE_QUANTITY_TBL.delete;
Line: 7279

G_UPDATED_FLAG_DEF_TBL.delete;  -- begin shu fix bug 2599822
Line: 7280

G_CALCULATION_CODE_DEF_TBL.delete;
Line: 7281

G_CHANGE_REASON_CODE_DEF_TBL.delete;
Line: 7282

G_CHANGE_REASON_TEXT_DEF_TBL.delete; -- end shu fix bug 2599822
Line: 7283

G_PRICE_ADJUSTMENT_ID_DEF_TBL.delete; -- bug 3099847
Line: 7284

G_ACCUM_CONTEXT_DEF_TBL.delete;   -- accum range break
Line: 7285

G_ACCUM_ATTRIBUTE_DEF_TBL.delete; -- accum range break
Line: 7286

G_ACCUM_FLAG_DEF_TBL.delete;      -- accum range break
Line: 7287

G_BREAK_UOM_CODE_DEF_TBL.delete;  /* Proration */
Line: 7288

G_BREAK_UOM_CONTEXT_DEF_TBL.delete;  /* Proration */
Line: 7289

G_BREAK_UOM_ATTRIBUTE_DEF_TBL.delete;  /* Proration */
Line: 7290

G_PROCESS_CODE_DEF_TBL.delete; -- 3215497
Line: 7291

G_SERVICE_DURATION_DEF_TBL.delete;  -- service project
Line: 7292

G_SERVICE_PERIOD_DEF_TBL.delete;   -- service project
Line: 7306

  |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;
Line: 7322

l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_RLTD_LINES2_AT';
Line: 7327

  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
            );
Line: 7369

  |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';
Line: 7441

  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)
            );
Line: 7468

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);
Line: 7482

   G_LIST_LINE_ID_DEF_TBL.delete;
Line: 7483

   G_RLTD_LIST_LINE_ID_DEF_TBL.delete;
Line: 7485

   G_PRICING_STATUS_TEXT_DEF_TBL.delete;
Line: 7494

END INSERT_RLTD_LINES2; -- public version
Line: 7497

  |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;
Line: 7531

  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
  );
Line: 7543

END INSERT_RLTD_LINES2; -- overloaded version
Line: 7560

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;
Line: 7585

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;
Line: 7598

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
Line: 7646

    l_co_line_index_tbl.delete;
Line: 7647

    l_ia_value_from_tbl.delete;
Line: 7648

    l_ia_line_index_tbl.delete;
Line: 7649

    l_ia_attribute_tbl.delete;
Line: 7657

     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;
Line: 7667

       engine_debug('No volume context in temp table, inserting one');
Line: 7669

        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);
Line: 7689

	 UPDATE qp_npreq_lines_tmp
	 SET UNIT_PRICE = NULL
	 WHERE LINE_INDEX = I.LINE_INDEX;
Line: 7700

       engine_debug('Trying to update cross order volume period qty in temp table');
Line: 7745

	 engine_debug ('Trying to update line quantity and line amount in temp table');
Line: 7763

		    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);
Line: 7772

		     engine_debug ('After select statment ');
Line: 7776

		 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
				 );
Line: 7809

      engine_debug('No volume context in temp table, inserting one');
Line: 7811

      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);
Line: 7841

         engine_debug('No volume context and line amt in temp table, inserting one');
Line: 7843

        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);
Line: 7859

    /*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; */
Line: 7872

      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;
Line: 7884

      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;
Line: 7896

	 engine_debug ('Trying to update order amount in temp table');
Line: 7915

     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;
Line: 7928

         engine_debug('No volume context and order amt in temp table, inserting one');
Line: 7931

        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;
Line: 7953

           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;
Line: 7986

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';
Line: 7991

qp_debug_util.tstart('UPDATE_DISTINCT_QUALIFIER_FLAG','Procedure UPDATE_DISTINCT_QUALIFIER_FLAG');
Line: 7993

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);
Line: 8013

  /* 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); */
Line: 8022

qp_debug_util.tstop('UPDATE_DISTINCT_QUALIFIER_FLAG');
Line: 8030

	qp_debug_util.tstop('UPDATE_DISTINCT_QUALIFIER_FLAG');
Line: 8031

END Update_Distinct_Qualifier_Flag;
Line: 8035

  |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';
Line: 8048

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;
Line: 8060

engine_debug('In Delete Duplicate List Lines procedure');
Line: 8072

 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);
Line: 8090

END Delete_Duplicate_List_Lines;
Line: 8093

  |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';
Line: 8108

 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);
Line: 8163

  engine_debug('No of headers deleted from qual tmp due to non-matching of product : ' || l_routine || ' ' || SQL%ROWCOUNT);
Line: 8174

END Delete_Hdrs_With_No_ProdAttr;
Line: 8178

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);
Line: 8214

     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)));
Line: 8235

       QP_PREQ_GRP.engine_debug ('Deleted Un Asked for promotions:'||l_pricing_status_code);
Line: 8241

    x_return_status_txt := 'Unexpected error in QP_PREQ_GRP.Delete_Un_Asked_For_Promotions: ' || SQLERRM;
Line: 8242

END Delete_Un_Asked_For_Promotions;
Line: 8292

l_not_insert_order_line_flag BOOLEAN := FALSE;
Line: 8304

 SELECT COUNT(*)
 FROM   qp_npreq_line_attrs_tmp
 WHERE  PRICING_STATUS_CODE = 'X';
Line: 8313

 SELECT COUNT(*)
 FROM   qp_int_line_attrs
 WHERE  PRICING_STATUS_CODE = 'X';
Line: 8325

	SELECT a.ask_for_flag
	FROM qp_list_headers_b a
 	WHERE a.list_header_id = l_list_header_id;
Line: 8330

 	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;
Line: 8400

    l_not_insert_order_line_flag := TRUE;
Line: 8402

    l_not_insert_order_line_flag := FALSE;
Line: 8419

   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
Line: 8472

   G_UPD_ADJUSTED_UNIT_PRICE_TBL(K):= p_line_tbl(I).UPDATED_ADJUSTED_UNIT_PRICE;
Line: 8479

   G_PRICING_STATUS_CODE_tbl(K)    := G_STATUS_UNCHANGED; -- always when inserted
Line: 8501

    SELECT qp_limit_price_request_code_s.nextval
    INTO l_order_line_id
    FROM dual;
Line: 8530

            engine_debug ('Bulk Inserting the actual lines : ' || G_PRICE_LIST_ID_TBL(1));
Line: 8532

            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);
Line: 8593

      (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;
Line: 8641

           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);
Line: 8896

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                   );
Line: 8936

/* begin bulk insert ldets -- 3215497 */
-- first reset global tables
Reset_All_Tbls(l_status_code, l_status_text);
Line: 8947

  v_pricing_status_code := G_STATUS_UNCHANGED; -- insert passed adjustments with X
Line: 8953

       (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;
Line: 8984

  G_UPDATED_FLAG_TBL(K) := p_LINE_DETAIL_tbl(I).UPDATED_FLAG;
Line: 9007

  G_SELECTED_VOLUME_ATTR_TBL(K) := null;
Line: 9018

  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
  );
Line: 9077

/* end bulk insert ldets */


/* begin bulk insert ldet qualifiers -- 3215497 */
-- first reset global tables
Reset_All_Tbls(l_status_code, l_status_text);
Line: 9130

/* 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;
Line: 9183

  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
  );
Line: 9221

/* 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);
Line: 9253

  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
  );
Line: 9266

    engine_debug('after bulk insert rltd lines');
Line: 9269

/* end bulk insert rltd lines */



IF G_DEBUG_ENGINE = FND_API.G_TRUE THEN
  OPEN l_get_count_cur;
Line: 9347

SELECT pricing_effective_date
FROM   qp_npreq_lines_tmp
WHERE  line_index = p_line_index;
Line: 9356

SELECT pricing_effective_date
FROM   qp_int_lines
WHERE  line_index = p_line_index;
Line: 9431

    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;
Line: 9472

    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';
Line: 9496

    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');
Line: 9521

    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;
Line: 9594

    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;
Line: 9610

    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;
Line: 9648

    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';
Line: 9672

    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');
Line: 9696

    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;
Line: 9766

    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;
Line: 9819

    x_line_tbl(I).UPDATED_ADJUSTED_UNIT_PRICE := l_line.UPDATED_ADJUSTED_UNIT_PRICE;
Line: 9936

    x_line_detail_tbl(I).UPDATED_FLAG := l_dets.UPDATED_FLAG;
Line: 10103

    x_line_tbl(I).UPDATED_ADJUSTED_UNIT_PRICE := l_line.UPDATED_ADJUSTED_UNIT_PRICE;
Line: 10211

    x_line_detail_tbl(I).UPDATED_FLAG := l_dets.UPDATED_FLAG;
Line: 10379

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;
Line: 10405

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;
Line: 10427

l_deleted_flag         BOOLEAN := FALSE;
Line: 10444

	    l_deleted_flag = FALSE) THEN

   l_passed_value_from := NULL; -- Init
Line: 10447

   l_deleted_flag := FALSE;
Line: 10468

    engine_debug('EMH Deleted Flag is True');
Line: 10474

    l_deleted_flag := TRUE;
Line: 10499

  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);
Line: 10509

  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; */
Line: 10520

  Delete_Duplicate_List_Lines(p_pricing_phase_id,l_status_code,l_status_text);
Line: 10564

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;
Line: 10582

/*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 ; */
Line: 10597

   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;
Line: 10655

  /*UPDATE qp_npreq_line_attrs_tmp --upd1
  SET GROUP_QUANTITY = l_group_quantity
  WHERE LIST_LINE_ID = j.list_line_id;*/
Line: 10662

  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;
Line: 10678

    G_LINE_INDEX_TBL_G.delete;
Line: 10679

    G_UNIT_PRICE_TBL_G.delete;
Line: 10713

     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);
Line: 10761

     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;
Line: 10770

      SELECT 'X'
      INTO   l_dummy
      FROM   qp_npreq_ldets_tmp
      WHERE  line_index = p_line_index
      AND    modifier_level_code = G_LINE_GROUP;
Line: 10805

  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));
Line: 10876

  |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';
Line: 10889

qp_debug_util.tstart('UPDATE_REQUEST_LINE_STATUS','Procedure UPDATE_REQUEST_LINE_STATUS');
Line: 10891

 engine_debug('In Update Request Line Status : ' || p_status_code);
Line: 10895

  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;
Line: 10905

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;
Line: 10924

  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));
Line: 10945

		SELECT rounding_factor FROM qp_npreq_lines_tmp;
Line: 10959

                        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;
Line: 10976

			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;
Line: 11007

  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));
Line: 11025

qp_debug_util.tstop('UPDATE_REQUEST_LINE_STATUS');
Line: 11033

	qp_debug_util.tstop('UPDATE_REQUEST_LINE_STATUS');
Line: 11034

END Update_Request_Line_Status;
Line: 11061

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;
Line: 11098

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;
Line: 11134

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;
Line: 11169

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;
Line: 11198

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;
Line: 11230

l_deleted_between       VARCHAR2(1);
Line: 11234

l_selected_volume_attr  VARCHAR2(1); -- 2388011_new
Line: 11262

     UPDATE qp_npreq_line_attrs_tmp
     SET    PRICING_STATUS_CODE = G_DELETED_BETWEEN
     WHERE CURRENT OF l_pric_character_between_cur;
Line: 11283

     UPDATE qp_npreq_line_attrs_tmp
     SET    PRICING_STATUS_CODE = G_DELETED_BETWEEN
     WHERE CURRENT OF l_mod_character_between_cur;
Line: 11306

  l_deleted_between := 'F';
Line: 11319

          l_selected_volume_attr := G_QUANTITY; -- 2388011_new
Line: 11324

      l_selected_volume_attr := G_AMOUNT; -- 2388011_new
Line: 11328

    ELSE -- Make it a success,because line group between is done again,so do not delete
      l_value_from_num :=  NULL;
Line: 11342

      l_selected_volume_attr := G_QUANTITY;
Line: 11344

      l_selected_volume_attr := G_AMOUNT;
Line: 11346

       l_selected_volume_attr := 'O'; -- 2388011_latest, for weight volume attribute
Line: 11385

    UPDATE qp_npreq_line_attrs_tmp
    SET    PRICING_STATUS_CODE = G_DELETED_BETWEEN
    WHERE CURRENT OF l_pric_between_cur;
Line: 11388

    l_deleted_between := 'T';
Line: 11392

  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;
Line: 11423

   SELECT UNIT_PRICE INTO l_list_price
   FROM   qp_npreq_lines_tmp
   WHERE  LINE_INDEX = i.line_index;
Line: 11447

    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;
Line: 11465

    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;
Line: 11483

  l_deleted_between := 'F';
Line: 11503

    ELSE -- Make it a success,because line group between is done again,so do not delete
      l_value_from_num :=  NULL;
Line: 11551

    UPDATE qp_npreq_line_attrs_tmp
    SET    PRICING_STATUS_CODE = G_DELETED_BETWEEN
    WHERE CURRENT OF l_mod_between_cur;
Line: 11554

    l_deleted_between := 'T';
Line: 11558

  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;
Line: 11591

     SELECT UNIT_PRICE INTO l_list_price
     FROM   qp_npreq_lines_tmp
     WHERE  LINE_INDEX = i.line_index;
Line: 11631

    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;
Line: 11649

    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;
Line: 11669

    UPDATE qp_npreq_ldets_tmp --upd4
    SET    PRICING_STATUS_CODE = G_DELETED_BETWEEN
    WHERE  LINE_DETAIL_INDEX  = l_line_detail_tbl(i);
Line: 11718

   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
Line: 11851

   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
Line: 11937

SELECT net_amount_flag
FROM   qp_list_lines
WHERE  list_line_id = p_list_line_id;
Line: 11965

l_selected_volume_attr VARCHAR2(1);
Line: 12022

l_l_selected_volume_attr_tbl      FLAG_TYPE; -- only need VARCHAR(1)
Line: 12225

        l_selected_volume_attr := G_QUANTITY;
Line: 12228

        l_selected_volume_attr := G_AMOUNT;
Line: 12246

       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;
Line: 12266

        l_selected_volume_attr := G_QUANTITY;
Line: 12314

      	l_selected_volume_attr := 'O'; --2388011_latest
Line: 12318

        l_selected_volume_attr := G_AMOUNT;
Line: 12332

       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;
Line: 12393

          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;
Line: 12420

              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;
Line: 12449

                 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;
Line: 12801

         l_l_selected_volume_attr_tbl(i)   := l_selected_volume_attr;
Line: 12842

                engine_debug('Inserting line_detail');
Line: 12848

        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)
             );
Line: 12935

    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;
Line: 12946

        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)
            );
Line: 12984

        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));
Line: 13097

  |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'
Line: 13120

l_routine VARCHAR2(240):='QP_PREQ_GRP.Delete_invalid_PBH_Children';
Line: 13123

  engine_debug('in Delete_Invalid_PBH_Children');
Line: 13125

  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);
Line: 13139

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;
Line: 13154

END Delete_Invalid_PBH_Children;
Line: 13181

     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;
Line: 13224

  G_LIST_HEADER_ID_TBL_G.delete;
Line: 13225

  G_LIST_LINE_ID_TBL_G.delete;
Line: 13226

  G_GROUP_QUANTITY_TBL_G.delete;
Line: 13227

  G_GROUP_AMOUNT_TBL_G.delete;
Line: 13228

  G_LINE_DETAIL_INDEX_TBL_G.delete;
Line: 13229

  G_LINE_INDEX_TBL_G.delete;
Line: 13230

  G_LINE_QUANTITY_TBL_G.delete;
Line: 13231

  G_LIST_TYPE_CODE_TBL_G.delete;
Line: 13283

   UPDATE qp_npreq_ldets_tmp
   SET PRICING_STATUS_CODE = G_DELETED_PBH
   WHERE LINE_DETAIL_INDEX = g_failed_ld_tbl_g(i);
Line: 13292

  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;
Line: 13345

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 ;
Line: 13374

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 ;
Line: 13399

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') ;
Line: 13418

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') ;
Line: 13435

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 ;
Line: 13451

SELECT count(*)
FROM   qp_qualifiers
WHERE  list_header_id = p_list_header_id
AND    qualifier_grouping_no = -1
AND    list_line_id = -1;
Line: 13465

SELECT count(*)
FROM   qp_qualifiers
WHERE  list_header_id = p_list_header_id
AND    list_line_id = -1
AND    comparison_operator_code <> 'NOT =';
Line: 13479

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;
Line: 13492

SELECT count(*)
FROM   qp_qualifiers
WHERE  list_header_id = p_list_header_id
AND    list_line_id = p_list_line_id;
Line: 13503

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 ;
Line: 13527

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;
Line: 13543

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;
Line: 13557

SELECT 'X'
FROM   qp_qualifiers
WHERE  list_header_id = p_list_header_id
AND    list_line_id = p_list_line_id;
Line: 13567

SELECT 'X'
FROM qp_qualifiers
WHERE LIST_HEADER_ID = p_list_header_id
AND   list_line_id = -1;
Line: 13593

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;
Line: 13616

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;
Line: 13629

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;
Line: 13644

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;
Line: 13660

SELECT 'X'
FROM   qp_qualifiers
WHERE  list_header_id = p_list_header_id
AND    list_line_id = -1
AND    qualifier_grouping_no <> -1;
Line: 13674

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;
Line: 13696

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;
Line: 13719

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;
Line: 13743

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);
Line: 13755

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;
Line: 13797

l_deleted_flag               BOOLEAN:= FALSE;
Line: 13895

	   -- 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);
Line: 13942

       l_deleted_flag := FALSE;
Line: 13955

                       engine_debug('Update #7');
Line: 13957

                      l_deleted_flag := TRUE;
Line: 13990

       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');
Line: 14043

	      -- 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);
Line: 14095

                       engine_debug('Update #7');
Line: 14116

             engine_debug('The whole List Line is getting deleted');
Line: 14117

             engine_debug('Update #1');
Line: 14128

            engine_debug('The whole List Line is getting deleted#1');
Line: 14129

            engine_debug('Update #2');
Line: 14149

     engine_debug('Update #3');
Line: 14158

 engine_debug('Deleted Line Details in Table');
Line: 14183

   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);
Line: 14189

   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; */
Line: 14202

   UPDATE qp_npreq_ldets_tmp --upd2
   SET PRICING_STATUS_CODE = G_STATUS_NEW
   WHERE line_detail_index = l_success_tbl(i);
Line: 14207

   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; */
Line: 14214

 l_del_tbl.delete;
Line: 14215

 l_success_tbl.delete;
Line: 14281

	      -- 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);
Line: 14328

                       engine_debug('Update #6');
Line: 14354

                       engine_debug('Update #4');
Line: 14373

             engine_debug('The whole List Line is getting deleted');
Line: 14374

               engine_debug('Update #5');
Line: 14385

 engine_debug('Deleted Line Details in Pure Line Grouping Table');
Line: 14399

   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);
Line: 14405

   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; */
Line: 14428

   UPDATE qp_npreq_ldets_tmp --upd4
   SET PRICING_STATUS_CODE = G_STATUS_NEW
   WHERE line_detail_index = l_success_tbl(i);
Line: 14433

   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; */
Line: 14440

 l_del_tbl.delete;
Line: 14441

 l_success_tbl.delete;
Line: 14453

  G_LIST_HEADER_ID_TBL_G.delete;
Line: 14454

  G_LIST_LINE_ID_TBL_G.delete;
Line: 14455

  G_LINE_INDEX_TBL_G.delete;
Line: 14456

  G_NO_OF_PATTS_IN_GRP_TBL_G.delete;
Line: 14484

       engine_debug('Getting Deleted in Product Grouping');
Line: 14494

       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);
Line: 14502

       /* 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); */
Line: 14507

       /* 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); */
Line: 14527

       engine_debug('Getting Deleted in Product Grouping');
Line: 14536

       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);
Line: 14544

       /* 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); */
Line: 14549

       /* 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); */
Line: 14564

  /* 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);
Line: 14570

  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); */
Line: 14589

  | 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';
Line: 14605

  engine_debug ('In Procedure Update_Price_List_Information...');
Line: 14608

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));
Line: 14628

  engine_debug ('after update1...');
Line: 14632

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
Line: 14664

engine_debug ('after update2');
Line: 14670

 engine_debug('Call from Public API , Update_Price_List_Information');
Line: 14674

  engine_debug('Trying to Update Unit Price To Null');
Line: 14676

  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';
Line: 14688

  engine_debug ('after update3');
Line: 14692

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);
Line: 14711

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) ;
Line: 14726

  engine_debug ('after update4');
Line: 14733

  x_status_text:= 'QP_PREQ_GRP.Update_Price_List_Information: '||SQLERRM;
Line: 14738

END Update_Price_List_Information;
Line: 14741

  | 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';
Line: 14751

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;
Line: 14784

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 ;
Line: 14814

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 ;
Line: 14840

END Update_Sec_Price_List_Info;
Line: 14890

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;
Line: 15430

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;
Line: 16208

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;
Line: 16309

 Update_Sec_Price_List_Info(l_status_code,l_status_text);
Line: 16315

  G_LINE_DETAIL_INDEX_TBL.delete;
Line: 16316

  G_LINE_DETAIL_TYPE_CODE_TBL.delete;
Line: 16317

  G_LINE_INDEX_TBL.delete;
Line: 16318

  G_LIST_HEADER_ID_TBL.delete;
Line: 16319

  G_LIST_LINE_ID_TBL.delete;
Line: 16320

  G_LIST_LINE_TYPE_TBL.delete;
Line: 16321

  G_CREATED_FROM_SQL_TBL.delete;
Line: 16322

  G_PRICING_GROUP_SEQUENCE_TBL.delete;
Line: 16323

  G_OPERAND_CALCULATION_CODE_TBL.delete;
Line: 16324

  G_OPERAND_VALUE_TBL.delete;
Line: 16325

  G_PRICING_PHASE_ID_TBL.delete;
Line: 16326

  G_LIST_TYPE_CODE_TBL.delete;
Line: 16327

  G_PRICING_STATUS_CODE_TBL.delete;
Line: 16328

  G_PROCESSED_FLAG_TBL.delete;
Line: 16329

  G_AUTOMATIC_FLAG_TBL.delete;
Line: 16330

  G_MODIFIER_LEVEL_CODE_TBL.delete;
Line: 16331

  G_LIST_LINE_NO_TBL.delete;
Line: 16332

  G_INCOMP_GRP_CODE_TBL.delete;
Line: 16333

  G_PRICE_FORMULA_ID_TBL.delete;
Line: 16334

  G_PRODUCT_PRECEDENCE_TBL.delete;
Line: 16335

  G_PRIMARY_UOM_FLAG_TBL.delete;
Line: 16336

  G_ROUNDING_FACTOR_TBL.delete;
Line: 16337

  G_SECONDARY_PRICELIST_IND_TBL.delete;
Line: 16338

  G_CURRENCY_DETAIL_ID_TBL.delete;
Line: 16339

  G_CURRENCY_HEADER_ID_TBL.delete;
Line: 16340

  G_SELLING_ROUNDING_TBL.delete;
Line: 16341

  G_ORDER_CURRENCY_TBL.delete;
Line: 16342

  G_PRICING_EFFECTIVE_DATE_TBL.delete;
Line: 16343

  G_BASE_CURRENCY_CODE_TBL.delete;
Line: 16344

  G_BREAK_UOM_TBL.delete;
Line: 16345

  G_BREAK_CONTEXT_TBL.delete;
Line: 16346

  G_BREAK_ATTRIBUTE_TBL.delete;
Line: 16349

  G_LINE_INDEX_TBL_A.delete;
Line: 16350

  G_LINE_DETAIL_INDEX_TBL_A.delete;
Line: 16351

  G_ATTRIBUTE_LEVEL_tbl.delete;
Line: 16352

  G_ATTRIBUTE_TYPE_tbl.delete;
Line: 16353

  G_LIST_HEADER_ID_TBL_A.delete;
Line: 16354

  G_LIST_LINE_ID_TBL_A.delete;
Line: 16355

  G_CONTEXT_tbl.delete;
Line: 16356

  G_ATTRIBUTE_tbl.delete;
Line: 16357

  G_VALUE_FROM_tbl.delete;
Line: 16358

  G_SETUP_VALUE_FROM_tbl.delete;
Line: 16359

  G_SETUP_VALUE_TO_tbl.delete;
Line: 16360

  G_GROUPING_NUMBER_tbl.delete;
Line: 16361

  G_COMPARISON_OPERATOR_TYPE_tbl.delete;
Line: 16362

  G_VALIDATED_FLAG_tbl.delete;
Line: 16363

  G_APPLIED_FLAG_tbl.delete;
Line: 16364

  G_PRICING_STATUS_CODE_TBL_Q.delete;
Line: 16365

  G_PRICING_STATUS_TEXT_tbl.delete;
Line: 16366

  G_QUALIFIER_PRECEDENCE_TBL.delete;
Line: 16367

  G_DATATYPE_tbl.delete;
Line: 16368

  G_PRICING_ATTR_FLAG_tbl.delete;
Line: 16369

  G_QUALIFIER_TYPE_TBL.delete;
Line: 16370

  G_PRODUCT_UOM_CODE_TBL.delete;
Line: 16371

  G_EXCLUDER_FLAG_TBL.delete;
Line: 16372

  G_PRICING_PHASE_ID_TBL_A.delete;
Line: 16373

  G_INCOMP_GRP_CODE_TBL_A.delete;
Line: 16374

  G_LINE_DETAIL_TYPE_CODE_TBL_A.delete;
Line: 16375

  G_MODIFIER_LEVEL_CODE_TBL_A.delete;
Line: 16376

  G_PRIMARY_UOM_FLAG_TBL_A.delete;
Line: 16463

            engine_debug('Inserting Secondary Price List Detail');
Line: 16504

          engine_debug('----BEFORE INSERTING SECONDARY PRODUCT ATTRS -------');
Line: 16525

        G_PRICING_STATUS_TEXT_tbl(M)       := 'INSERTED IN SECONDARY LIST HEADER SEARCH';
Line: 16542

            engine_debug('----BEFORE INSERTING SECONDARY PRICING ATTRS -------');
Line: 16560

          G_PRICING_STATUS_TEXT_tbl(M)     := 'INSERTED IN SECONDARY LIST HEADER SEARCH';
Line: 16592

          G_PRICING_STATUS_TEXT_tbl(M)     := 'INSERTED IN L_SEC_LIST_CUR_CURRENCY';
Line: 16683

            engine_debug('Inserting Secondary Price List Detail');
Line: 16725

          engine_debug('----BEFORE INSERTING SECONDARY PRODUCT ATTRS -------');
Line: 16746

        G_PRICING_STATUS_TEXT_tbl(M)       := 'INSERTED IN SECONDARY LIST HEADER SEARCH';
Line: 16763

            engine_debug('----BEFORE INSERTING SECONDARY PRICING ATTRS -------');
Line: 16780

          G_PRICING_STATUS_TEXT_tbl(M)       := 'INSERTED IN SECONDARY LIST HEADER SEARCH';
Line: 16813

          G_PRICING_STATUS_TEXT_tbl(M)     := 'INSERTED IN L_SEC_LIST_CUR';
Line: 16841

    qp_debug_util.tstart('QP_NPREQ_LDETS_TMP','Inserting into ldets QP_NPREQ_LDETS_TMP');
Line: 16843

        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 */
        );
Line: 16914

    qp_debug_util.tstart('INSERT_PRICE_LIST_ATTRS','Inserting into lin attrs INSERT_PRICE_LIST_ATTRS');
Line: 16915

      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);
Line: 16946

qp_debug_util.tstop('INSERT_PRICE_LIST_ATTRS');
Line: 17005

       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;
Line: 17020

     Update_Request_Line_Status(p_control_rec,'SUCCESS',p_freeze_override_flag,l_status_code,l_status_text);  --[julin/4708044]
Line: 17042

      /* OPEN l_chk_deleted_pbh_cur(l_line_index,G_PRICE_LIST_PHASE_ID);
Line: 17043

      FETCH l_chk_deleted_pbh_cur INTO l_dummy;
Line: 17044

      IF l_chk_deleted_pbh_cur%FOUND THEN
       Delete_Invalid_PBH_Children(l_line_index,G_PRICE_LIST_PHASE_ID);
Line: 17047

      CLOSE l_chk_deleted_pbh_cur; */
Line: 17050

   Update_Request_Line_Status(p_control_rec,'FAILURE',p_freeze_override_flag,l_status_code,l_status_text);  --[juiln/4708044]
Line: 17079

  | 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
Line: 17345

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
Line: 17714

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;
Line: 18193

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;
Line: 18918

  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
  );
Line: 18979

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;
Line: 19227

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;
Line: 19475

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
Line: 19485

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
Line: 19492

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;
Line: 19601

              engine_debug('List line id selected from asked for prom l_other_list_cur : '||K.list_line_id );
Line: 19604

		qp_debug_util.tstart('INSERT_LDETS','Inserting the ldets INSERT_LDETS');
Line: 19605

              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);
Line: 19641

		qp_debug_util.tstop('INSERT_LDETS');
Line: 19660

               G_PRICING_STATUS_TEXT_tbl(M)     :='INSERTED IN VALIDATED ASKED FOR PROMOTION SEARCH';
Line: 19695

                G_PRICING_STATUS_TEXT_tbl(M)     :='INSERTED IN VALIDATED ASKED FOR PROMOTION SEARCH';
Line: 19736

             engine_debug('List line id selected from asked for prom l_other_list_cur : '||K.list_line_id );
Line: 19739

		qp_debug_util.tstart('INSERT_LDETS','Inserting the ldets INSERT_LDETS');
Line: 19740

              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);
Line: 19776

		qp_debug_util.tstop('INSERT_LDETS');
Line: 19796

               G_PRICING_STATUS_TEXT_tbl(M)     :='INSERTED IN VALIDATED ASKED FOR PROMOTION SEARCH';
Line: 19832

                G_PRICING_STATUS_TEXT_tbl(M)     :='INSERTED IN VALIDATED ASKED FOR PROMOTION SEARCH';
Line: 19859

		qp_debug_util.tstart('INSERT_LINE_ATTRS2','Inserting the line attrs INSERT_LINE_ATTRS2');
Line: 19860

            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);
Line: 19893

		qp_debug_util.tstop('INSERT_LINE_ATTRS2');
Line: 19923

  G_LINE_INDEX_TBL_P.delete;
Line: 19924

  G_LIST_LINE_ID_TBL_P.delete;
Line: 19925

  G_LIST_HEADER_ID_TBL_P.delete;
Line: 19926

  G_OPER_CALCULATION_CODE_TBL_P.delete;
Line: 19927

  G_OPERAND_VALUE_TBL_P.delete;
Line: 19928

  G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
Line: 19929

  G_LIST_LINE_TYPE_TBL_P.delete;
Line: 19930

  G_PRICING_PHASE_ID_TBL_P.delete;
Line: 19931

  G_AUTOMATIC_FLAG_TBL_P.delete;
Line: 19932

  G_INCOMP_GRP_CODE_TBL_P.delete;
Line: 19933

  G_PRICE_FORMULA_ID_TBL_P.delete;
Line: 19934

  G_PRODUCT_PRECEDENCE_TBL_P.delete;
Line: 19935

  G_PRIMARY_UOM_FLAG_TBL_P.delete;
Line: 19936

  G_MODIFIER_LEVEL_CODE_TBL_P.delete;
Line: 19937

  G_LIST_LINE_NO_TBL_P.delete;
Line: 19938

  G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 19939

  G_EXCLUDER_FLAG_TBL_P.delete;
Line: 19940

  G_LIST_TYPE_CODE_TBL_P.delete;
Line: 19941

  G_ROUNDING_FACTOR_TBL_P.delete;
Line: 19942

  G_CONTEXT_TBL_P.delete;
Line: 19943

  G_ATTRIBUTE_TBL_P.delete;
Line: 19944

  G_VALUE_FROM_TBL_P.delete;
Line: 19945

  G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 19946

  G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 19947

  G_APPLIED_FLAG_TBL_P.delete;
Line: 19948

  G_CONTEXT_TBL_PR.delete;
Line: 19949

  G_ATTRIBUTE_TBL_PR.delete;
Line: 19950

  G_VALUE_FROM_TBL_PR.delete;
Line: 19951

  G_SETUP_VALUE_FROM_TBL_PR.delete;
Line: 19952

  G_SETUP_VALUE_TO_TBL_PR.delete;
Line: 19953

  G_ATTRIBUTE_LEVEL_TBL_PR.delete;
Line: 19954

  G_ATTRIBUTE_TYPE_TBL_PR.delete;
Line: 19955

  G_OPERATOR_TYPE_TBL_PR.delete;
Line: 19956

  G_DATATYPE_TBL_PR.delete;
Line: 19957

  G_BREAK_UOM_TBL_P.delete; /* Proration */
Line: 19958

  G_BREAK_CONTEXT_TBL_P.delete; /* Proration */
Line: 19959

  G_BREAK_ATTRIBUTE_TBL_P.delete; /* Proration */
Line: 19960

  G_DERIVED_QUALIFIER_FLAG_TBL_Q.delete;    -- Added for TCA
Line: 19961

  G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
Line: 19965

  engine_debug('cursor l_list_cur_currency-multi-currency TRUE - delete tables');
Line: 19967

  G_CURRENCY_DETAIL_ID_TBL_P.delete; /* sunilpandey */
Line: 19968

  G_CURRENCY_HEADER_ID_TBL_P.delete; /* vivek */
Line: 19969

  G_SELLING_ROUNDING_TBL_P.delete; /* vivek */
Line: 19970

  G_ORDER_CURRENCY_TBL_P.delete; /* vivek */
Line: 19971

  G_PRICING_EFFECTIVE_DATE_TBL_P.delete; /* vivek */
Line: 19972

  G_BASE_CURRENCY_CODE_TBL_P.delete; /* vivek */
Line: 20085

                    G_PRICING_STATUS_TEXT_LD_TBL(M)       :='INSERTED IN L_LIST_CUR';
Line: 20092

                    G_CREATED_FROM_SQL_TBL(M)             :='INSERTED IN L_LIST_CUR';
Line: 20146

                   G_PRICING_STATUS_TEXT_tbl(K)     :='INSERTED IN L_LIST_CUR';
Line: 20178

                    G_PRICING_STATUS_TEXT_tbl(K)     :='INSERTED IN L_LIST_CUR';
Line: 20216

qp_debug_util.tstart('INSERT_LDETS_PRICE_LIST_MULT/NON_MULTI','Inserting INSERT_LDETS_PRICE_LIST_MULT/NON_MULTI');
Line: 20219

  engine_debug('cursor l_list_cur_currency-multi-currency TRUE - insert_ldets2');
Line: 20221

  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
                 );
Line: 20259

  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
                 );
Line: 20292

 qp_debug_util.tstop('INSERT_LDETS_PRICE_LIST_MULT/NON_MULTI');
Line: 20299

  qp_debug_util.tstart('INSERT_PRICE_LIST_ATTRS','Inserting INSERT_PRICE_LIST_ATTRS');
Line: 20300

   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);
Line: 20331

	qp_debug_util.tstop('INSERT_PRICE_LIST_ATTRS');
Line: 20357

  G_LINE_INDEX_TBL_P.delete;
Line: 20358

  G_LIST_LINE_ID_TBL_P.delete;
Line: 20359

  G_OPER_CALCULATION_CODE_TBL_P.delete;
Line: 20360

  G_OPERAND_VALUE_TBL_P.delete;
Line: 20361

  G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
Line: 20362

  G_LIST_LINE_TYPE_TBL_P.delete;
Line: 20363

  G_PRICING_PHASE_ID_TBL_P.delete;
Line: 20364

  G_AUTOMATIC_FLAG_TBL_P.delete;
Line: 20365

  G_OVERRIDE_FLAG_TBL_P.delete;
Line: 20366

  G_PRINT_ON_INVOICE_FLAG_TBL_P.delete;
Line: 20367

  G_INCOMP_GRP_CODE_TBL_P.delete;
Line: 20368

  G_PRICE_FORMULA_ID_TBL_P.delete;
Line: 20369

  G_PRODUCT_PRECEDENCE_TBL_P.delete;
Line: 20370

  G_PRIMARY_UOM_FLAG_TBL_P.delete;
Line: 20371

  G_MODIFIER_LEVEL_CODE_TBL_P.delete;
Line: 20372

  G_LIST_LINE_NO_TBL_P.delete;
Line: 20373

  G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 20374

  G_EXCLUDER_FLAG_TBL_P.delete;
Line: 20375

  G_LIST_TYPE_CODE_TBL_P.delete;
Line: 20376

  G_ROUNDING_FACTOR_TBL_P.delete;
Line: 20377

  G_LIST_HEADER_ID_TBL_P.delete;
Line: 20378

  G_CONTEXT_TBL_P.delete;
Line: 20379

  G_ATTRIBUTE_TBL_P.delete;
Line: 20380

  G_VALUE_FROM_TBL_P.delete;
Line: 20381

  G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 20382

  G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 20383

  G_APPLIED_FLAG_TBL_P.delete;
Line: 20384

  G_CONTEXT_TBL_PR.delete;
Line: 20385

  G_ATTRIBUTE_TBL_PR.delete;
Line: 20386

  G_VALUE_FROM_TBL_PR.delete;
Line: 20387

  G_SETUP_VALUE_FROM_TBL_PR.delete;
Line: 20388

  G_SETUP_VALUE_TO_TBL_PR.delete;
Line: 20389

  G_ATTRIBUTE_LEVEL_TBL_PR.delete;
Line: 20390

  G_ATTRIBUTE_TYPE_TBL_PR.delete;
Line: 20391

  G_OPERATOR_TYPE_TBL_PR.delete;
Line: 20392

  G_CONTEXT_TBL_Q.delete;
Line: 20393

  G_ATTRIBUTE_TBL_Q.delete;
Line: 20394

  G_VALUE_FROM_TBL_Q.delete;
Line: 20395

  G_PRICING_ATTR_FLAG_TBL_Q.delete;
Line: 20396

  G_GROUPING_NO_TBL_Q.delete;
Line: 20397

  G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
Line: 20398

  G_DATATYPE_TBL_Q.delete;
Line: 20399

  G_SETUP_VALUE_FROM_TBL_Q.delete;
Line: 20400

  G_SETUP_VALUE_TO_TBL_Q.delete;
Line: 20401

  G_OPERATOR_TYPE_TBL_Q .delete;
Line: 20402

  G_DATATYPE_TBL_PR.delete;
Line: 20403

  G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 20404

  G_BREAK_UOM_TBL_P.delete; /* Proration */
Line: 20405

  G_BREAK_CONTEXT_TBL_P.delete; /* Proration */
Line: 20406

  G_BREAK_ATTRIBUTE_TBL_P.delete; /* Proration */
Line: 20407

  G_PRICE_BREAK_TYPE_CODE_TBL_P.delete; --[julin] for price book
Line: 20411

  engine_debug('cursor l_list_qual_cur_currency-multi-currency TRUE - delete tables');
Line: 20413

  G_CURRENCY_DETAIL_ID_TBL_P.delete; /* sunilpandey */
Line: 20414

  G_CURRENCY_HEADER_ID_TBL_P.delete; /* vivek */
Line: 20415

  G_SELLING_ROUNDING_TBL_P.delete; /* vivek */
Line: 20416

  G_ORDER_CURRENCY_TBL_P.delete; /* vivek */
Line: 20417

  G_PRICING_EFFECTIVE_DATE_TBL_P.delete; /* vivek */
Line: 20418

  G_BASE_CURRENCY_CODE_TBL_P.delete; /* vivek */
Line: 20555

                    engine_debug('Inserting List Line #102');
Line: 20568

                    G_PRICING_STATUS_TEXT_LD_TBL(M)       :='INSERTED IN L_LIST_QUAL_CUR';
Line: 20575

                    G_CREATED_FROM_SQL_TBL(M)             :='INSERTED_IN_L_LIST_QUAL_CUR';
Line: 20628

                  G_PRICING_STATUS_TEXT_tbl(K)     := 'INSERTED IN L_LIST_QUAL_CUR';
Line: 20666

                   G_PRICING_STATUS_TEXT_tbl(K)     :='INSERTED IN L_LIST_QUAL_CUR';
Line: 20702

                    G_PRICING_STATUS_TEXT_tbl(K)     :='INSERTED IN L_LIST_QUAL_CUR';
Line: 20745

qp_debug_util.tstart('INSERT_LDETS_PRICE_LIST_MULT_NON_MULTI','Inserting ldets INSERT_LDETS_PRICE_LIST_MULT_NON_MULTI');
Line: 20748

  engine_debug('cursor l_list_qual_cur_currency-multi-currency TRUE - insert_ldets2');
Line: 20751

  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
                 );
Line: 20789

  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
                 );
Line: 20821

 qp_debug_util.tstop('INSERT_LDETS_PRICE_LIST_MULT_NON_MULTI');
Line: 20827

qp_debug_util.tstart('INSERT_PRICE_LIST_ATTRS','Inserting line attrs INSERT_PRICE_LIST_ATTRS');
Line: 20828

              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);
Line: 20859

qp_debug_util.tstop('INSERT_PRICE_LIST_ATTRS');
Line: 20917

              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;
Line: 20932

            Update_Request_Line_Status(p_control_rec,'SUCCESS',p_freeze_override_flag,l_return_status,l_status_text);  --[julin/4708044]
Line: 20963

      	       /*OPEN l_chk_deleted_pbh_cur(J.line_index,G_PRICE_LIST_PHASE_ID);
Line: 20964

      	       FETCH l_chk_deleted_pbh_cur INTO l_dummy;
Line: 20965

      	       IF l_chk_deleted_pbh_cur%FOUND THEN
       	        Delete_Invalid_PBH_Children(J.line_index,G_PRICE_LIST_PHASE_ID);
Line: 20968

               CLOSE l_chk_deleted_pbh_cur;*/
Line: 20974

    Update_Request_Line_Status(p_control_rec,'FAILURE',p_freeze_override_flag,l_return_status,l_status_text);  --[julin/4708044]
Line: 21066

	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;
Line: 21152

	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;
Line: 21212

	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;
Line: 21351

	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;
Line: 21415

	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;
Line: 21536

	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;
Line: 21600

	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;
Line: 21667

	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;
Line: 21729

   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);
Line: 21833

   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);
Line: 22054

Update_Sec_Price_List_Info(x_status_code,x_status_text);
Line: 22091

	      l_list_header_id_tbl.DELETE;
Line: 22092

	      l_list_line_id_tbl.DELETE;
Line: 22093

	      l_line_index_tbl.DELETE;
Line: 22094

	      l_matched_pattrn_id_tbl.DELETE;
Line: 22095

              l_ag_matched_pat_id_tbl.DELETE;
Line: 22096

	      l_pricing_phase_id_tbl.DELETE;
Line: 22097

	      l_matched_hash_key_tbl.DELETE;
Line: 22098

	      l_ag_mtchd_hash_key_tbl.DELETE;
Line: 22099

	      l_stage_tbl.DELETE;
Line: 22100

	      l_pricing_status_code_tbl.DELETE;
Line: 22101

	      l_ssc.DELETE;
Line: 22102

	      l_header_quals_exist_flag.DELETE;
Line: 22103

	      l_grouping_no.DELETE;
Line: 22104

	      l_ag_grpng_no.DELETE;
Line: 22105

	      l_eq_flag.DELETE;
Line: 22106

	      l_ag_eq_flag.DELETE;
Line: 22107

	      l_validated_flag.DELETE;
Line: 22108

	      l_modf_lvl_code.DELETE;
Line: 22109

              l_other_oprt_count.DELETE;
Line: 22110

	      l_ag_othr_oprt_cnt.DELETE;
Line: 22111

	      l_null_other_oprt_count.DELETE;
Line: 22112

              l_list_type_code.DELETE;
Line: 22113

	      l_ask_for_flag.DELETE;
Line: 22114

	      l_hdr_lmt_exists.DELETE;
Line: 22115

	      l_line_lmt_exists.DELETE;
Line: 22116

	      l_curr_det_id.DELETE;
Line: 22117

	      l_curr_hdr_id.DELETE;
Line: 22118

	      L_SELLNG_ROUND_FTR.DELETE;
Line: 22119

              l_base_curr_code.DELETE;
Line: 22120

	      l_prcng_effctve_dt.DELETE;
Line: 22121

              l_brk_uom_code.DELETE;
Line: 22122

              l_brk_uom_ctxt.DELETE;
Line: 22123

              l_brk_uom_attr.DELETE;
Line: 22124

              l_order_curr.DELETE;
Line: 22125

	      L_qualifier_precedence.DELETE;
Line: 22126

	      l_curr_det_id.DELETE;
Line: 22127

	      l_curr_hdr_id.DELETE;
Line: 22128

	      L_SELLNG_ROUND_FTR.DELETE;
Line: 22129

              l_base_curr_code.DELETE;
Line: 22130

              l_descnt_quals_exist.DELETE;
Line: 22131

              l_PRICE_BREAK_TYPE_CODE.DELETE;
Line: 22195

	    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)
					);
Line: 22293

	      l_list_header_id_tbl.DELETE;
Line: 22294

	      l_list_line_id_tbl.DELETE;
Line: 22295

	      l_line_index_tbl.DELETE;
Line: 22296

	      l_matched_pattrn_id_tbl.DELETE;
Line: 22297

              l_ag_matched_pat_id_tbl.DELETE;
Line: 22298

	      l_pricing_phase_id_tbl.DELETE;
Line: 22299

	      l_matched_hash_key_tbl.DELETE;
Line: 22300

	      l_ag_mtchd_hash_key_tbl.DELETE;
Line: 22301

	      l_stage_tbl.DELETE;
Line: 22302

	      l_pricing_status_code_tbl.DELETE;
Line: 22303

	      l_ssc.DELETE;
Line: 22304

	      l_header_quals_exist_flag.DELETE;
Line: 22305

	      l_grouping_no.DELETE;
Line: 22306

	      l_ag_grpng_no.DELETE;
Line: 22307

	      l_eq_flag.DELETE;
Line: 22308

	      l_ag_eq_flag.DELETE;
Line: 22309

	      l_validated_flag.DELETE;
Line: 22310

	      l_modf_lvl_code.DELETE;
Line: 22311

              l_other_oprt_count.DELETE;
Line: 22312

	      l_ag_othr_oprt_cnt.DELETE;
Line: 22313

	      l_null_other_oprt_count.DELETE;
Line: 22314

              l_list_type_code.DELETE;
Line: 22315

	      l_ask_for_flag.DELETE;
Line: 22316

	      l_hdr_lmt_exists.DELETE;
Line: 22317

	      l_line_lmt_exists.DELETE;
Line: 22318

	      l_curr_det_id.DELETE;
Line: 22319

	      l_curr_hdr_id.DELETE;
Line: 22320

	      L_SELLNG_ROUND_FTR.DELETE;
Line: 22321

              l_base_curr_code.DELETE;
Line: 22322

	      l_prcng_effctve_dt.DELETE;
Line: 22323

              l_brk_uom_code.DELETE;
Line: 22324

              l_brk_uom_ctxt.DELETE;
Line: 22325

              l_brk_uom_attr.DELETE;
Line: 22326

              l_order_curr.DELETE;
Line: 22327

	      L_qualifier_precedence.DELETE;
Line: 22328

              l_descnt_quals_exist.DELETE;
Line: 22329

              l_PRICE_BREAK_TYPE_CODE.DELETE;
Line: 22473

	    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)
					);
Line: 22532

			 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;
Line: 22600

			     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';
Line: 22698

	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');
Line: 22726

       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 );
Line: 22769

	      l_list_header_id_tbl.DELETE;
Line: 22770

	      l_list_line_id_tbl.DELETE;
Line: 22771

	      l_line_index_tbl.DELETE;
Line: 22772

	      l_matched_pattrn_id_tbl.DELETE;
Line: 22773

	      l_pricing_phase_id_tbl.DELETE;
Line: 22774

	      l_stage_tbl.DELETE;
Line: 22775

	      l_matched_hash_key_tbl.DELETE;
Line: 22776

	      l_pricing_status_code_tbl.DELETE;
Line: 22777

	      l_ssc.DELETE;
Line: 22778

	      l_header_quals_exist_flag.DELETE;
Line: 22779

	      l_grouping_no.DELETE;
Line: 22780

	      l_eq_flag.DELETE;
Line: 22781

	      l_validated_flag.DELETE;
Line: 22782

	      l_modf_lvl_code.DELETE;
Line: 22783

	      l_other_oprt_count.DELETE;
Line: 22784

	      l_null_other_oprt_count.DELETE;
Line: 22785

	      l_list_type_code.DELETE;
Line: 22786

	      l_ask_for_flag.DELETE;
Line: 22787

	      l_hdr_lmt_exists.DELETE;
Line: 22788

	      l_line_lmt_exists.DELETE;
Line: 22789

	      l_curr_code.DELETE;
Line: 22790

		l_brk_uom_code.DELETE;
Line: 22791

		l_brk_uom_ctxt.DELETE;
Line: 22792

		l_brk_uom_attr.DELETE;
Line: 22793

		l_prcng_effctve_dt.DELETE;
Line: 22794

		l_curr_det_id.DELETE;
Line: 22795

	      l_curr_hdr_id.DELETE;
Line: 22796

	      L_SELLNG_ROUND_FTR.DELETE;
Line: 22797

              l_base_curr_code.DELETE;
Line: 22798

	      L_qualifier_precedence.DELETE;
Line: 22799

              l_descnt_quals_exist.DELETE;
Line: 22800

              l_PRICE_BREAK_TYPE_CODE.DELETE;
Line: 22872

	    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)
					);
Line: 22941

	    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)
					);
Line: 23036

	      l_list_header_id_tbl.DELETE;
Line: 23037

	      l_list_line_id_tbl.DELETE;
Line: 23038

	      l_line_index_tbl.DELETE;
Line: 23039

	      l_matched_pattrn_id_tbl.DELETE;
Line: 23040

	      l_pricing_phase_id_tbl.DELETE;
Line: 23041

	      l_stage_tbl.DELETE;
Line: 23042

	      l_matched_hash_key_tbl.DELETE;
Line: 23043

	      l_pricing_status_code_tbl.DELETE;
Line: 23044

	      l_ssc.DELETE;
Line: 23045

	      l_header_quals_exist_flag.DELETE;
Line: 23046

	      l_grouping_no.DELETE;
Line: 23047

	      l_eq_flag.DELETE;
Line: 23048

	      l_validated_flag.DELETE;
Line: 23049

	      l_modf_lvl_code.DELETE;
Line: 23050

	      l_other_oprt_count.DELETE;
Line: 23051

	      l_null_other_oprt_count.DELETE;
Line: 23052

	      l_list_type_code.DELETE;
Line: 23053

	      l_ask_for_flag.DELETE;
Line: 23054

	      l_hdr_lmt_exists.DELETE;
Line: 23055

	      l_line_lmt_exists.DELETE;
Line: 23056

	      l_curr_code.DELETE;
Line: 23057

		l_brk_uom_code.DELETE;
Line: 23058

		l_brk_uom_ctxt.DELETE;
Line: 23059

		l_brk_uom_attr.DELETE;
Line: 23060

		l_prcng_effctve_dt.DELETE;
Line: 23061

		l_curr_det_id.DELETE;
Line: 23062

	      l_curr_hdr_id.DELETE;
Line: 23063

	      L_SELLNG_ROUND_FTR.DELETE;
Line: 23064

              l_base_curr_code.DELETE;
Line: 23065

	      L_qualifier_precedence.DELETE;
Line: 23066

              l_descnt_quals_exist.DELETE;
Line: 23067

              l_PRICE_BREAK_TYPE_CODE.DELETE;
Line: 23135

	    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));
Line: 23202

	    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));
Line: 23308

       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');
Line: 23384

       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;
Line: 23404

     Update_Request_Line_Status(p_control_rec,'SUCCESS',p_freeze_override_flag,x_status_code,x_status_text);  --[julin/4708044]
Line: 23422

	   -- 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]
Line: 23547

   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);
Line: 23709

   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);
Line: 24066

              l_list_header_id_tbl.DELETE;
Line: 24067

	      l_list_line_id_tbl.DELETE;
Line: 24068

	      l_line_index_tbl.DELETE;
Line: 24069

	      l_matched_pattrn_id_tbl.DELETE;
Line: 24070

              l_ag_matched_pat_id_tbl.DELETE;
Line: 24071

	      l_pricing_phase_id_tbl.DELETE;
Line: 24072

	      l_matched_hash_key_tbl.DELETE;
Line: 24073

	      l_ag_mtchd_hash_key_tbl.DELETE;
Line: 24074

	      l_stage_tbl.DELETE;
Line: 24075

	      l_pricing_status_code_tbl.DELETE;
Line: 24076

	      l_ssc.DELETE;
Line: 24077

	      l_header_quals_exist_flag.DELETE;
Line: 24078

	      l_grouping_no.DELETE;
Line: 24079

	      l_ag_grpng_no.DELETE;
Line: 24080

	      l_eq_flag.DELETE;
Line: 24081

	      l_ag_eq_flag.DELETE;
Line: 24082

	      l_validated_flag.DELETE;
Line: 24083

	      l_modf_lvl_code.DELETE;
Line: 24084

              l_other_oprt_count.DELETE;
Line: 24085

	      l_ag_othr_oprt_cnt.DELETE;
Line: 24086

	      l_null_other_oprt_count.DELETE;
Line: 24087

              l_list_type_code.DELETE;
Line: 24088

	      l_ask_for_flag.DELETE;
Line: 24089

	      l_hdr_lmt_exists.DELETE;
Line: 24090

	      l_line_lmt_exists.DELETE;
Line: 24091

	      l_curr_det_id.DELETE;
Line: 24092

	      l_curr_hdr_id.DELETE;
Line: 24093

	      L_SELLNG_ROUND_FTR.DELETE;
Line: 24094

              l_base_curr_code.DELETE;
Line: 24095

	      l_prcng_effctve_dt.DELETE;
Line: 24096

              l_brk_uom_code.DELETE;
Line: 24097

              l_brk_uom_ctxt.DELETE;
Line: 24098

              l_brk_uom_attr.DELETE;
Line: 24099

              l_order_curr.DELETE;
Line: 24100

	      l_descnt_quals_exist.DELETE;
Line: 24101

	      l_PRICE_BREAK_TYPE_CODE.DELETE;
Line: 24197

         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;
Line: 24263

             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
Line: 24358

	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');
Line: 24386

    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);
Line: 24449

              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;
Line: 24464

           Update_Request_Line_Status(p_control_rec,'SUCCESS',p_freeze_override_flag,l_return_status,l_status_text);  --[julin/4708044]
Line: 24484

	   Update_Request_Line_Status(p_control_rec,'FAILURE',p_freeze_override_flag,x_status_code,x_status_text);  --[juiln/4708044]
Line: 24560

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
Line: 24595

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
Line: 24633

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
Line: 24674

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
Line: 24718

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;
Line: 24733

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;
Line: 24749

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;
Line: 24760

SELECT LIST_LINE_ID
FROM   QP_QUALIFIERS
WHERE  LIST_LINE_ID = p_list_line_id
AND    QUALIFIER_GROUPING_NO <> -1;
Line: 24844

      engine_debug('Deleted Hdr id : '||i.list_header_id||' Unique Key : ' || i.unique_key);
Line: 24883

     engine_debug('Deleted Hdr id : '||i.list_header_id|| ' Unique Key : ' || i.unique_key);
Line: 24912

    engine_debug('Deleted Headers : ' || l_hdr_del_tbl(m));
Line: 24927

    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;
Line: 24934

  l_hdr_del_tbl.delete;
Line: 24988

      engine_debug('Deleted Line id : '||j.list_line_id|| ' Unique Key : ' || j.unique_key);
Line: 25012

     engine_debug('Deleted Line id : '||j.list_line_id|| ' Unique Key : ' || j.unique_key);
Line: 25052

       engine_debug('Deleted Line id : '||j.list_line_id|| ' Unique Key : ' || j.unique_key);
Line: 25090

   engine_debug('Deleted Lines : ' || l_line_del_tbl(m));
Line: 25101

    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;
Line: 25108

  l_line_del_tbl.delete;
Line: 25163

      engine_debug('Deleted Hdr id : '||i.list_header_id||' Line Indx: '||i.line_index || ' Unique Key : ' || i.unique_key);
Line: 25202

     engine_debug('Deleted Hdr id : '||i.list_header_id||' Line Indx: '||i.line_index || ' Unique Key : ' || i.unique_key);
Line: 25232

    engine_debug('Deleted Headers : ' || l_hdr_del_tbl(m));
Line: 25247

    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;
Line: 25254

  l_hdr_del_tbl.delete;
Line: 25309

      engine_debug('Deleted Line id : '||j.list_line_id||' Line Indx: '||j.line_index || ' Unique Key : ' || j.unique_key);
Line: 25332

     engine_debug('Deleted Line id : '||j.list_line_id||' Line Indx: '||j.line_index || ' Unique Key : ' || j.unique_key);
Line: 25372

       engine_debug('Deleted Line id : '||j.list_line_id||' Line Indx: '||j.line_index || ' Unique Key : ' || j.unique_key);
Line: 25427

   engine_debug('Deleted Lines : ' || l_line_del_tbl(m));
Line: 25438

    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;
Line: 25445

  l_line_del_tbl.delete;
Line: 25460

  |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;
Line: 25673

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;
Line: 25954

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;
Line: 26110

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;
Line: 26270

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;
Line: 26452

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;
Line: 26569

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;
Line: 26628

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;
Line: 26648

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 ;
Line: 26754

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
Line: 26937

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;
Line: 27009

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;
Line: 27029

l_routine VARCHAR2(240):='Routine:QP_PREQ_GRP.SELECT_MODIFIERS';
Line: 27066

   engine_debug('Before Big Select');
Line: 27094

   qp_debug_util.tstart('DELETE_HDRS_WITH_NO_PRODATTR','Deleting the headers with no product attribute');
Line: 27095

   Delete_Hdrs_With_No_ProdAttr(p_pricing_phase_id,l_status_code,l_status_text);
Line: 27096

   qp_debug_util.tstop('DELETE_HDRS_WITH_NO_PRODATTR');
Line: 27118

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);
Line: 27178

	-- 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;
Line: 27191

	--and qpqt1.qualifier_grouping_no = -1; -- should update all groups and not just -1 groups
Line: 27194

	-- 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;
Line: 27210

  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);
Line: 27234

   G_LIST_HEADER_ID_TBL_Q.delete;
Line: 27235

   G_LIST_LINE_ID_TBL_Q.delete;
Line: 27236

   G_CONTEXT_TBL_Q.delete;
Line: 27237

   G_ATTRIBUTE_TBL_Q.delete;
Line: 27238

   G_VALUE_FROM_TBL_Q.delete;
Line: 27239

   G_LIST_TYPE_CODE_TBL_Q.delete;
Line: 27240

   G_ASK_FOR_FLAG_TBL_Q.delete;
Line: 27241

   G_GROUPING_NO_TBL_Q.delete;
Line: 27242

   G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
Line: 27243

   G_OTHERS_GROUP_CNT_TBL_Q.delete;
Line: 27244

   G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
Line: 27245

   G_SEARCH_IND_TBL_Q.delete;
Line: 27246

   G_VALIDATED_FLAG_TBL_Q.delete;
Line: 27247

   G_APPLIED_FLAG_TBL_Q.delete;
Line: 27248

   G_ATTRIBUTE_LEVEL_TBL_Q.delete;
Line: 27249

   G_ATTRIBUTE_TYPE_TBL_Q.delete;
Line: 27250

   G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
Line: 27251

   G_DATATYPE_TBL_Q.delete;
Line: 27252

   G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 27253

   G_SETUP_VALUE_FROM_TBL_Q.delete;
Line: 27254

   G_SETUP_VALUE_TO_TBL_Q.delete;
Line: 27255

   G_PRICING_ATTR_FLAG_TBL_Q.delete;
Line: 27256

   G_OPERATOR_TYPE_TBL_Q.delete;
Line: 27257

   G_LINE_INDEX_TBL_Q.delete;
Line: 27258

   G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
Line: 27259

   G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 27260

   G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 27261

   G_LINE_TYPE_CODE_TBL_Q.delete;
Line: 27262

   G_PRICING_STATUS_CODE_TBL_Q.delete;
Line: 27263

   G_PRICING_PHASE_ID_TBL_Q.delete;
Line: 27264

   G_UNIQUE_KEY_TBL_Q.delete;
Line: 27265

   G_START_DATE_ACTIVE_TBL_H_Q.delete;
Line: 27266

   G_END_DATE_ACTIVE_TBL_H_Q.delete;
Line: 27267

   G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 27268

   G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 27269

   G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
Line: 27270

   G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
Line: 27271

   G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
Line: 27318

   engine_debug('Inserting no rows into qp_preq_qual_tmp for each line index');
Line: 27324

     engine_debug('Inserting rows into qp_preq_qual_tmp for each line index: ' || G_LIST_HEADER_ID_TBL_Q.COUNT);
Line: 27327

      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);
Line: 27385

   G_LIST_HEADER_ID_TBL_Q.delete;
Line: 27386

   G_LIST_LINE_ID_TBL_Q.delete;
Line: 27387

   G_CONTEXT_TBL_Q.delete;
Line: 27388

   G_ATTRIBUTE_TBL_Q.delete;
Line: 27389

   G_VALUE_FROM_TBL_Q.delete;
Line: 27390

   G_LIST_TYPE_CODE_TBL_Q.delete;
Line: 27391

   G_ASK_FOR_FLAG_TBL_Q.delete;
Line: 27392

   G_GROUPING_NO_TBL_Q.delete;
Line: 27393

   G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
Line: 27394

   G_OTHERS_GROUP_CNT_TBL_Q.delete;
Line: 27395

   G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
Line: 27396

   G_SEARCH_IND_TBL_Q.delete;
Line: 27397

   G_VALIDATED_FLAG_TBL_Q.delete;
Line: 27398

   G_APPLIED_FLAG_TBL_Q.delete;
Line: 27399

   G_ATTRIBUTE_LEVEL_TBL_Q.delete;
Line: 27400

   G_ATTRIBUTE_TYPE_TBL_Q.delete;
Line: 27401

   G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
Line: 27402

   G_DATATYPE_TBL_Q.delete;
Line: 27403

   G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 27404

   G_SETUP_VALUE_FROM_TBL_Q.delete;
Line: 27405

   G_SETUP_VALUE_TO_TBL_Q.delete;
Line: 27406

   G_PRICING_ATTR_FLAG_TBL_Q.delete;
Line: 27407

   G_OPERATOR_TYPE_TBL_Q.delete;
Line: 27408

   G_LINE_INDEX_TBL_Q.delete;
Line: 27409

   G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
Line: 27410

   G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 27411

   G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 27412

   G_LINE_TYPE_CODE_TBL_Q.delete;
Line: 27413

   G_PRICING_STATUS_CODE_TBL_Q.delete;
Line: 27414

   G_PRICING_PHASE_ID_TBL_Q.delete;
Line: 27415

   G_UNIQUE_KEY_TBL_Q.delete;
Line: 27416

   G_START_DATE_ACTIVE_TBL_H_Q.delete;
Line: 27417

   G_END_DATE_ACTIVE_TBL_H_Q.delete;
Line: 27418

   G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 27419

   G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 27420

   G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
Line: 27421

   G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
Line: 27422

   G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
Line: 27423

   G_DERIVED_QUALIFIER_FLAG_TBL_Q.delete;    -- Added for TCA
Line: 27471

   engine_debug('Inserting no rows into qp_preq_qual_tmp for each line index');
Line: 27477

     engine_debug('Inserting rows into qp_preq_qual_tmp for each line index: ' || G_LIST_HEADER_ID_TBL_Q.COUNT);
Line: 27479

     qp_debug_util.tstart('INSERT_QUAL','Cursor INSERT_QUAL');
Line: 27480

      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);
Line: 27524

     qp_debug_util.tstop('INSERT_QUAL');
Line: 27548

 G_LIST_HEADER_ID_TBL_P.delete;
Line: 27549

 G_LIST_LINE_ID_TBL_P.delete;
Line: 27550

 G_LIST_LINE_TYPE_TBL_P.delete;
Line: 27551

 G_LINE_INDEX_TBL_P.delete;
Line: 27552

 G_VALIDATED_FLAG_TBL_P.delete;
Line: 27553

 G_APPLIED_FLAG_TBL_P.delete;
Line: 27554

 G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 27555

 G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 27556

 G_CONTEXT_TBL_P.delete;
Line: 27557

 G_ATTRIBUTE_TBL_P.delete;
Line: 27558

 G_VALUE_FROM_TBL_P.delete;
Line: 27559

 G_SETUP_VALUE_FROM_TBL_P.delete;
Line: 27560

 G_PRICING_ATTR_FLAG_TBL_P.delete;
Line: 27561

 G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 27562

 G_EXCLUDER_FLAG_TBL_P.delete;
Line: 27563

 G_AUTOMATIC_FLAG_TBL_P.delete;
Line: 27564

 G_MODIFIER_LEVEL_CODE_TBL_P.delete;
Line: 27565

 G_NET_AMOUNT_FLAG_TBL_P.delete; --IT net_amount 2720717
Line: 27566

 G_PRIMARY_UOM_FLAG_TBL_P.delete;
Line: 27567

 G_OPER_CALCULATION_CODE_TBL_P.delete;
Line: 27568

 G_OPERAND_VALUE_TBL_P.delete;
Line: 27569

 G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
Line: 27570

 G_PRICING_PHASE_ID_TBL_P.delete;
Line: 27571

 G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
Line: 27572

 G_INCOMP_GRP_CODE_TBL_P.delete;
Line: 27573

 G_PRICE_FORMULA_ID_TBL_P.delete;
Line: 27574

 G_PRODUCT_PRECEDENCE_TBL_P.delete;
Line: 27575

 G_OVERRIDE_FLAG_TBL_P.delete;
Line: 27576

 G_BENEFIT_QTY_TBL_P.delete;
Line: 27577

 G_BENEFIT_UOM_CODE_TBL_P.delete;
Line: 27578

 G_SERVICE_DURATION_TBL_P.delete; -- service project
Line: 27579

 G_SERVICE_PERIOD_TBL_P.delete; -- service project
Line: 27580

 G_LIST_LINE_NO_TBL_P.delete;
Line: 27581

 G_ACCRUAL_FLAG_TBL_P.delete;
Line: 27582

 G_ACCR_CONVERSION_RATE_TBL_P.delete;
Line: 27583

 G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
Line: 27584

 G_ASK_FOR_FLAG_TBL_P.delete;
Line: 27585

 G_LIST_TYPE_CODE_TBL_P.delete;
Line: 27586

 G_HEADER_LIMIT_EXISTS_TBL_P.delete;
Line: 27587

 G_LINE_LIMIT_EXISTS_TBL_P.delete;
Line: 27588

 G_QUALIFIER_TYPE_TBL_P.delete;
Line: 27589

 G_CHARGE_TYPE_CODE_TBL_P.delete;
Line: 27590

 G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
Line: 27591

 G_ACCUM_CONTEXT_TBL_P.delete; -- for accum range break
Line: 27592

 G_ACCUM_ATTRIBUTE_TBL_P.delete; -- for accum range break
Line: 27593

 G_ACCUM_FLAG_TBL_P.delete; -- for accum range break
Line: 27650

      engine_debug(' Prod Qual List line id selected from big select: '||G_LIST_LINE_ID_TBL_P(I));
Line: 27845

  G_LIST_HEADER_ID_TBL_P.delete;
Line: 27846

  G_LIST_LINE_ID_TBL_P.delete;
Line: 27847

  G_LIST_LINE_TYPE_TBL_P.delete;
Line: 27848

  G_LINE_INDEX_TBL_P.delete;
Line: 27849

  G_VALIDATED_FLAG_TBL_P.delete;
Line: 27850

  G_APPLIED_FLAG_TBL_P.delete;
Line: 27851

  G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 27852

  G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 27853

  G_CONTEXT_TBL_P.delete;
Line: 27854

  G_ATTRIBUTE_TBL_P.delete;
Line: 27855

  G_VALUE_FROM_TBL_P.delete;
Line: 27856

  G_SETUP_VALUE_FROM_TBL_P.delete;
Line: 27857

  G_PRICING_ATTR_FLAG_TBL_P.delete;
Line: 27858

  G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 27859

  G_EXCLUDER_FLAG_TBL_P.delete;
Line: 27860

  G_ATTRIBUTE_LEVEL_TBL_PR.delete;
Line: 27861

  G_ATTRIBUTE_TYPE_TBL_PR.delete;
Line: 27862

  G_CONTEXT_TBL_PR.delete;
Line: 27863

  G_ATTRIBUTE_TBL_PR.delete;
Line: 27864

  G_VALUE_FROM_TBL_PR.delete;
Line: 27865

  G_OPERATOR_TYPE_TBL_PR.delete;
Line: 27866

  G_SETUP_VALUE_FROM_TBL_PR.delete;
Line: 27867

  G_SETUP_VALUE_TO_TBL_PR.delete;
Line: 27868

  G_DATATYPE_TBL_PR.delete;
Line: 27869

  G_AUTOMATIC_FLAG_TBL_P.delete;
Line: 27870

  G_MODIFIER_LEVEL_CODE_TBL_P.delete;
Line: 27871

  G_PRIMARY_UOM_FLAG_TBL_P.delete;
Line: 27872

  G_OPER_CALCULATION_CODE_TBL_P.delete;
Line: 27873

  G_OPERAND_VALUE_TBL_P.delete;
Line: 27874

  G_NET_AMOUNT_FLAG_TBL_P.delete; -- IT net_amount 2720717
Line: 27875

  G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
Line: 27876

  G_PRICING_PHASE_ID_TBL_P.delete;
Line: 27877

  G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
Line: 27878

  G_INCOMP_GRP_CODE_TBL_P.delete;
Line: 27879

  G_PRICE_FORMULA_ID_TBL_P.delete;
Line: 27880

  G_PRODUCT_PRECEDENCE_TBL_P.delete;
Line: 27881

  G_OVERRIDE_FLAG_TBL_P.delete;
Line: 27882

  G_BENEFIT_QTY_TBL_P.delete;
Line: 27883

  G_BENEFIT_UOM_CODE_TBL_P.delete;
Line: 27884

  G_SERVICE_DURATION_TBL_P.delete;  -- service project
Line: 27885

  G_SERVICE_PERIOD_TBL_P.delete;   -- service project
Line: 27886

  G_LIST_LINE_NO_TBL_P.delete;
Line: 27887

  G_ACCRUAL_FLAG_TBL_P.delete;
Line: 27888

  G_ACCR_CONVERSION_RATE_TBL_P.delete;
Line: 27889

  G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
Line: 27890

  G_ASK_FOR_FLAG_TBL_P.delete;
Line: 27891

  G_LIST_TYPE_CODE_TBL_P.delete;
Line: 27892

  G_HEADER_LIMIT_EXISTS_TBL_P.delete;
Line: 27893

  G_LINE_LIMIT_EXISTS_TBL_P.delete;
Line: 27894

  G_QUALIFIER_TYPE_TBL_P.delete;
Line: 27895

  G_CHARGE_TYPE_CODE_TBL_P.delete;
Line: 27896

  G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
Line: 27897

  G_ACCUM_CONTEXT_TBL_P.delete;   -- accum range break
Line: 27898

  G_ACCUM_ATTRIBUTE_TBL_P.delete; -- accum range break
Line: 27899

  G_ACCUM_FLAG_TBL_P.delete;      -- accum range break
Line: 27964

        engine_debug(' Prod Qual Pric List line id selected from big select: '||G_LIST_LINE_ID_TBL_P(I) );
Line: 28197

 G_LIST_HEADER_ID_TBL_Q.delete;
Line: 28198

 G_LIST_LINE_ID_TBL_Q.delete;
Line: 28199

 G_LIST_LINE_TYPE_TBL_Q.delete;
Line: 28200

 G_LINE_INDEX_TBL_Q.delete;
Line: 28201

 G_AUTOMATIC_FLAG_TBL_Q.delete;
Line: 28202

 G_MODIFIER_LEVEL_CODE_TBL_Q.delete;
Line: 28203

 G_PRIMARY_UOM_FLAG_TBL_Q.delete;
Line: 28204

 G_OPER_CALCULATION_CODE_TBL_Q.delete;
Line: 28205

 G_OPERAND_TBL_Q.delete;
Line: 28206

 G_NET_AMOUNT_FLAG_TBL_Q.delete; -- IT net_amount 2720717
Line: 28207

 G_PRICING_GROUP_SEQUENCE_TBL_Q.delete;
Line: 28208

 G_PRICING_PHASE_ID_TBL_Q.delete;
Line: 28209

 G_PRICE_BREAK_TYPE_CODE_TBL_Q.delete;
Line: 28210

 G_INCOMP_GRP_CODE_TBL_Q.delete;
Line: 28211

 G_PRICE_FORMULA_ID_TBL_Q.delete;
Line: 28212

 G_PRODUCT_PRECEDENCE_TBL_Q.delete;
Line: 28213

 G_OVERRIDE_FLAG_TBL_P.delete;
Line: 28214

 G_BENEFIT_QTY_TBL_P.delete;
Line: 28215

 G_BENEFIT_UOM_CODE_TBL_P.delete;
Line: 28216

  G_SERVICE_DURATION_TBL_P.delete;  -- service project
Line: 28217

  G_SERVICE_PERIOD_TBL_P.delete;   -- service project
Line: 28218

 G_LIST_LINE_NO_TBL_Q.delete;
Line: 28219

 G_ACCRUAL_FLAG_TBL_Q.delete;
Line: 28220

 G_ACCR_CONVERSION_RATE_TBL_Q.delete;
Line: 28221

 G_ESTIM_ACCRUAL_RATE_TBL_Q.delete;
Line: 28222

 G_ASK_FOR_FLAG_TBL_Q.delete;
Line: 28223

 G_LIST_TYPE_CODE_TBL_Q.delete;
Line: 28224

 G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 28225

 G_HEADER_LIMIT_EXISTS_TBL_P.delete;
Line: 28226

 G_LINE_LIMIT_EXISTS_TBL_P.delete;
Line: 28227

 G_CHARGE_TYPE_CODE_TBL_P.delete;
Line: 28228

 G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
Line: 28229

 G_ACCUM_CONTEXT_TBL_P.delete; -- for accum range break
Line: 28230

 G_ACCUM_ATTRIBUTE_TBL_P.delete; -- for accum range break
Line: 28231

 G_ACCUM_FLAG_TBL_P.delete; -- for accum range break
Line: 28426

  G_LIST_HEADER_ID_TBL_P.delete;
Line: 28427

  G_LIST_LINE_ID_TBL_P.delete;
Line: 28428

  G_LIST_LINE_TYPE_TBL_P.delete;
Line: 28429

  G_LINE_INDEX_TBL_P.delete;
Line: 28430

  G_VALIDATED_FLAG_TBL_P.delete;
Line: 28431

  G_APPLIED_FLAG_TBL_P.delete;
Line: 28432

  G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 28433

  G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 28434

  G_CONTEXT_TBL_P.delete;
Line: 28435

  G_ATTRIBUTE_TBL_P.delete;
Line: 28436

  G_VALUE_FROM_TBL_P.delete;
Line: 28437

  G_SETUP_VALUE_FROM_TBL_P.delete;
Line: 28438

  G_PRICING_ATTR_FLAG_TBL_P.delete;
Line: 28439

  G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 28440

  G_EXCLUDER_FLAG_TBL_P.delete;
Line: 28441

  G_GROUPING_NUMBER_TBL_P.delete;
Line: 28442

  G_QUALIFIER_PRECEDENCE_TBL_P.delete;
Line: 28443

  G_AUTOMATIC_FLAG_TBL_P.delete;
Line: 28444

  G_MODIFIER_LEVEL_CODE_TBL_P.delete;
Line: 28445

  G_PRIMARY_UOM_FLAG_TBL_P.delete;
Line: 28446

  G_OPER_CALCULATION_CODE_TBL_P.delete;
Line: 28447

  G_OPERAND_VALUE_TBL_P.delete;
Line: 28448

  G_NET_AMOUNT_FLAG_TBL_P.delete;  -- IT net_amount 2720717
Line: 28449

  G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
Line: 28450

  G_ASK_FOR_FLAG_TBL_P.delete;
Line: 28451

  G_LIST_TYPE_CODE_TBL_P.delete;
Line: 28452

  G_PRICING_PHASE_ID_TBL_P.delete;
Line: 28453

  G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
Line: 28454

  G_INCOMP_GRP_CODE_TBL_P.delete;
Line: 28455

  G_PRICE_FORMULA_ID_TBL_P.delete;
Line: 28456

  G_PRODUCT_PRECEDENCE_TBL_P.delete;
Line: 28457

  G_OVERRIDE_FLAG_TBL_P.delete;
Line: 28458

  G_BENEFIT_QTY_TBL_P.delete;
Line: 28459

  G_BENEFIT_UOM_CODE_TBL_P.delete;
Line: 28460

  G_SERVICE_DURATION_TBL_P.delete;  -- service project
Line: 28461

  G_SERVICE_PERIOD_TBL_P.delete;   -- service project
Line: 28462

  G_LIST_LINE_NO_TBL_P.delete;
Line: 28463

  G_ACCRUAL_FLAG_TBL_P.delete;
Line: 28464

  G_ACCR_CONVERSION_RATE_TBL_P.delete;
Line: 28465

  G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
Line: 28466

  G_HEADER_LIMIT_EXISTS_TBL_P.delete;
Line: 28467

  G_LINE_LIMIT_EXISTS_TBL_P.delete;
Line: 28468

  G_QUALIFIER_TYPE_TBL_P.delete;
Line: 28469

  G_CHARGE_TYPE_CODE_TBL_P.delete;
Line: 28470

  G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
Line: 28471

  G_ACCUM_CONTEXT_TBL_P.delete; -- for accum range break
Line: 28472

  G_ACCUM_ATTRIBUTE_TBL_P.delete; -- for accum range break
Line: 28473

  G_ACCUM_FLAG_TBL_P.delete; -- for accum range break
Line: 28534

     engine_debug('List line id selected from l_prod_cur_mod: '||g_list_line_id_TBL_P(I));
Line: 28535

     engine_debug('Excluder Flag selected from big select1: '||g_excluder_flag_TBL_P(I));
Line: 28617

        engine_debug('Before Insert Excluder Flag selected from big select1: '||g_excluder_flag_TBL_P(I));
Line: 28657

  G_LIST_HEADER_ID_TBL_P.delete;
Line: 28658

  G_LIST_LINE_ID_TBL_P.delete;
Line: 28659

  G_LIST_LINE_TYPE_TBL_P.delete;
Line: 28660

  G_LINE_INDEX_TBL_P.delete;
Line: 28661

  G_VALIDATED_FLAG_TBL_P.delete;
Line: 28662

  G_APPLIED_FLAG_TBL_P.delete;
Line: 28663

  G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 28664

  G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 28665

  G_CONTEXT_TBL_P.delete;
Line: 28666

  G_ATTRIBUTE_TBL_P.delete;
Line: 28667

  G_VALUE_FROM_TBL_P.delete;
Line: 28668

  G_SETUP_VALUE_FROM_TBL_P.delete;
Line: 28669

  G_PRICING_ATTR_FLAG_TBL_P.delete;
Line: 28670

  G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 28671

  G_EXCLUDER_FLAG_TBL_P.delete;
Line: 28672

  G_GROUPING_NUMBER_TBL_P.delete;
Line: 28673

  G_QUALIFIER_PRECEDENCE_TBL_P.delete;
Line: 28674

  G_AUTOMATIC_FLAG_TBL_P.delete;
Line: 28675

  G_MODIFIER_LEVEL_CODE_TBL_P.delete;
Line: 28676

  G_PRIMARY_UOM_FLAG_TBL_P.delete;
Line: 28677

  G_OPER_CALCULATION_CODE_TBL_P.delete;
Line: 28678

  G_OPERAND_VALUE_TBL_P.delete;
Line: 28679

  G_NET_AMOUNT_FLAG_TBL_P.delete;  -- IT net_amount 2720717
Line: 28680

  G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
Line: 28681

  G_ASK_FOR_FLAG_TBL_P.delete;
Line: 28682

  G_LIST_TYPE_CODE_TBL_P.delete;
Line: 28683

  G_PRICING_PHASE_ID_TBL_P.delete;
Line: 28684

  G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
Line: 28685

  G_INCOMP_GRP_CODE_TBL_P.delete;
Line: 28686

  G_PRICE_FORMULA_ID_TBL_P.delete;
Line: 28687

  G_PRODUCT_PRECEDENCE_TBL_P.delete;
Line: 28688

  G_OVERRIDE_FLAG_TBL_P.delete;
Line: 28689

  G_PRINT_ON_INVOICE_FLAG_TBL_P.delete;
Line: 28690

  G_BENEFIT_QTY_TBL_P.delete;
Line: 28691

  G_BENEFIT_UOM_CODE_TBL_P.delete;
Line: 28692

  G_SERVICE_DURATION_TBL_P.delete;  -- service project
Line: 28693

  G_SERVICE_PERIOD_TBL_P.delete;   -- service project
Line: 28694

  G_LIST_LINE_NO_TBL_P.delete;
Line: 28695

  G_ACCRUAL_FLAG_TBL_P.delete;
Line: 28696

  G_ACCR_CONVERSION_RATE_TBL_P.delete;
Line: 28697

  G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
Line: 28698

  G_QUALIFIER_TYPE_TBL_P.delete;
Line: 28699

  G_ATTRIBUTE_LEVEL_TBL_PR.delete;
Line: 28700

  G_ATTRIBUTE_TYPE_TBL_PR.delete;
Line: 28701

  G_CONTEXT_TBL_PR.delete;
Line: 28702

  G_ATTRIBUTE_TBL_PR.delete;
Line: 28703

  G_VALUE_FROM_TBL_PR.delete;
Line: 28704

  G_OPERATOR_TYPE_TBL_PR.delete;
Line: 28705

  G_SETUP_VALUE_FROM_TBL_PR.delete;
Line: 28706

  G_SETUP_VALUE_TO_TBL_PR.delete;
Line: 28707

  G_DATATYPE_TBL_PR.delete;
Line: 28708

  G_HEADER_LIMIT_EXISTS_TBL_P.delete;
Line: 28709

  G_LINE_LIMIT_EXISTS_TBL_P.delete;
Line: 28710

  G_CHARGE_TYPE_CODE_TBL_P.delete;
Line: 28711

  G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
Line: 28712

  G_ACCUM_CONTEXT_TBL_P.delete; -- for accum range break
Line: 28713

  G_ACCUM_ATTRIBUTE_TBL_P.delete; -- for accum range break
Line: 28714

  G_ACCUM_FLAG_TBL_P.delete; -- for accum range break
Line: 28781

    engine_debug('List line id selected from l_prod_pric_cur_mod: '||G_LIST_LINE_ID_TBL_P(I) );
Line: 28944

   G_LINE_INDEX_TBL_B.delete;
Line: 28945

   G_LIST_HEADER_ID_TBL_B.delete;
Line: 28946

   G_LIST_LINE_ID_TBL_B.delete;
Line: 28947

   G_PRICE_BREAK_TYPE_CODE_TBL_B.delete ;
Line: 28948

   G_LIST_LINE_TYPE_TBL_B.delete;
Line: 28949

   G_LIST_TYPE_CODE_TBL_B.delete;
Line: 28950

   G_PRICING_GROUP_SEQUENCE_TBL_B.delete;
Line: 28951

   G_PRICING_PHASE_ID_TBL_B.delete;
Line: 28952

   G_OPER_CALCULATION_CODE_TBL_B.delete;
Line: 28953

   G_OPERAND_VALUE_TBL_B.delete;
Line: 28954

   G_NET_AMOUNT_FLAG_TBL_B.delete;  -- IT net_amount 2720717
Line: 28955

   G_ASK_FOR_FLAG_TBL_B.delete;
Line: 28956

   G_PRICE_FORMULA_ID_TBL_B.delete;
Line: 28957

   G_PRODUCT_PRECEDENCE_TBL_B.delete;
Line: 28958

   G_INCOMP_GRP_CODE_TBL_B.delete;
Line: 28959

   G_AUTOMATIC_FLAG_TBL_B.delete;
Line: 28960

   G_OVERRIDE_FLAG_TBL_B.delete;
Line: 28961

   G_PRIMARY_UOM_FLAG_TBL_B.delete;
Line: 28962

   G_PRINT_ON_INVOICE_FLAG_TBL_B.delete;
Line: 28963

   G_MODIFIER_LEVEL_CODE_TBL_B.delete;
Line: 28964

   G_BENEFIT_QTY_TBL_B.delete;
Line: 28965

   G_BENEFIT_UOM_CODE_TBL_B.delete;
Line: 28966

  G_SERVICE_DURATION_TBL_B.delete;  -- service project
Line: 28967

  G_SERVICE_PERIOD_TBL_B.delete;   -- service project
Line: 28968

   G_LIST_LINE_NO_TBL_B.delete;
Line: 28969

   G_ACCRUAL_FLAG_TBL_B.delete;
Line: 28970

   G_ACCR_CONVERSION_RATE_TBL_B.delete;
Line: 28971

   G_ESTIM_ACCRUAL_RATE_TBL_B.delete;
Line: 28972

   G_HEADER_LIMIT_EXISTS_TBL_P.delete;
Line: 28973

   G_LINE_LIMIT_EXISTS_TBL_P.delete;
Line: 28974

   G_CHARGE_TYPE_CODE_TBL_P.delete;
Line: 28975

   G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
Line: 28976

   G_ACCUM_CONTEXT_TBL_P.delete; -- for accum range break
Line: 28977

   G_ACCUM_ATTRIBUTE_TBL_P.delete; -- for accum range break
Line: 28978

   G_ACCUM_FLAG_TBL_P.delete; -- for accum range break
Line: 29023

     engine_debug('List line id selected from blind cur: '||G_LIST_LINE_ID_TBL_B(I) );
Line: 29136

engine_debug(  '38: ' || G_SELECTED_VOLUME_ATTR_TBL(Z));
Line: 29146

qp_debug_util.tstart('INSERT_LDETS_PVT','Inserting into ldets INSERT_LDETS_PVT');
Line: 29147

  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
                 );
Line: 29191

qp_debug_util.tstop('INSERT_LDETS_PVT');
Line: 29198

 qp_debug_util.tstart('INSERT_LINE_ATTRS2','Inserting into line attrs INSERT_LINE_ATTRS2');
Line: 29199

   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);
Line: 29236

 qp_debug_util.tstop('INSERT_LINE_ATTRS2');
Line: 29240

engine_debug('Before Inserting attributes in excluded cursor');
Line: 29246

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');
Line: 29264

 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);
Line: 29285

  G_LIST_HEADER_ID_TBL_P.delete;
Line: 29286

  G_LIST_LINE_ID_TBL_P.delete;
Line: 29287

  G_LINE_INDEX_TBL_P.delete;
Line: 29288

  G_VALIDATED_FLAG_TBL_P.delete;
Line: 29289

  G_APPLIED_FLAG_TBL_P.delete;
Line: 29290

  G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 29291

  G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 29292

  G_CONTEXT_TBL_P.delete;
Line: 29293

  G_ATTRIBUTE_TBL_P.delete;
Line: 29294

  G_VALUE_FROM_TBL_P.delete;
Line: 29295

  G_SETUP_VALUE_FROM_TBL_P.delete;
Line: 29296

  G_PRICING_ATTR_FLAG_TBL_P.delete;
Line: 29297

  G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 29298

  G_EXCLUDER_FLAG_TBL_P.delete;
Line: 29299

  G_QUALIFIER_PRECEDENCE_TBL_P.delete;
Line: 29300

  G_LINE_DETAIL_INDEX_TBL_P.delete;
Line: 29326

	   engine_debug('Inserting attributes in excluded cursor : ' || G_LINE_INDEX_TBL_P(I));
Line: 29366

qp_debug_util.tstart('INSERT_LINE_ATTRS2','Inserting into line attrs INSERT_LINE_ATTRS2');
Line: 29367

   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);
Line: 29403

qp_debug_util.tstop('INSERT_LINE_ATTRS2');
Line: 29422

      engine_debug('< In Select_modifiers>: '||SQLERRM);
Line: 29426

END SELECT_MODIFIERS;
Line: 29428

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);
Line: 29443

    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);
Line: 29511

    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);
Line: 29572

   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);
Line: 29666

   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);
Line: 29812

    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);
Line: 29932

    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);
Line: 30051

  l_routine VARCHAR2(40) := 'QP_PREQ_GRP.SELECT_PRICE_LIST_LINES_PAT';
Line: 30055

  qp_debug_util.tstart('SEL_PRICE_LIST_LINES_PAT','Big Search Call Pattern - SELECT_PRICE_LIST_LINES_PAT API', false, true);
Line: 30064

     engine_debug('Path selected - '||p_search_path);
Line: 30075

     engine_debug('Entering into procedure select_price_list_lines_pat');
Line: 30098

              l_list_header_id_tbl.DELETE;
Line: 30099

	      l_list_line_id_tbl.DELETE;
Line: 30100

	      l_line_index_tbl.DELETE;
Line: 30101

	      l_matched_pattrn_id_tbl.DELETE;
Line: 30102

              l_ag_matched_pat_id_tbl.DELETE;
Line: 30103

	      l_pricing_phase_id_tbl.DELETE;
Line: 30104

	      l_matched_hash_key_tbl.DELETE;
Line: 30105

	      l_ag_mtchd_hash_key_tbl.DELETE;
Line: 30106

	      l_stage_tbl.DELETE;
Line: 30107

	      l_pricing_status_code_tbl.DELETE;
Line: 30108

	      l_ssc.DELETE;
Line: 30109

	      l_header_quals_exist_flag.DELETE;
Line: 30110

	      l_grouping_no.DELETE;
Line: 30111

	      l_ag_grpng_no.DELETE;
Line: 30112

	      l_eq_flag.DELETE;
Line: 30113

	      l_ag_eq_flag.DELETE;
Line: 30114

	      l_validated_flag.DELETE;
Line: 30115

	      l_modf_lvl_code.DELETE;
Line: 30116

              l_other_oprt_count.DELETE;
Line: 30117

	      l_ag_othr_oprt_cnt.DELETE;
Line: 30118

	      l_null_other_oprt_count.DELETE;
Line: 30119

              l_list_type_code.DELETE;
Line: 30120

	      l_ask_for_flag.DELETE;
Line: 30121

	      l_hdr_lmt_exists.DELETE;
Line: 30122

	      l_line_lmt_exists.DELETE;
Line: 30123

	      l_curr_det_id.DELETE;
Line: 30124

	      l_curr_hdr_id.DELETE;
Line: 30125

	      L_SELLNG_ROUND_FTR.DELETE;
Line: 30126

              l_base_curr_code.DELETE;
Line: 30127

	      l_prcng_effctve_dt.DELETE;
Line: 30128

              l_brk_uom_code.DELETE;
Line: 30129

              l_brk_uom_ctxt.DELETE;
Line: 30130

              l_brk_uom_attr.DELETE;
Line: 30131

              l_order_curr.DELETE;
Line: 30132

	      l_PRICE_BREAK_TYPE_CODE.DELETE;
Line: 30133

              l_descnt_quals_exist.DELETE;
Line: 30134

	      l_qual_effective_precedence.delete;  --bug 12731268
Line: 30223

         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;
Line: 30291

             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
Line: 30375

	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');
Line: 30402

    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);
Line: 30442

	      l_list_header_id_tbl.DELETE;
Line: 30443

	      l_list_line_id_tbl.DELETE;
Line: 30444

	      l_line_index_tbl.DELETE;
Line: 30445

	      l_matched_pattrn_id_tbl.DELETE;
Line: 30446

	      l_pricing_phase_id_tbl.DELETE;
Line: 30447

	      l_stage_tbl.DELETE;
Line: 30448

	      l_matched_hash_key_tbl.DELETE;
Line: 30449

	      l_pricing_status_code_tbl.DELETE;
Line: 30450

	      l_ssc.DELETE;
Line: 30451

	      l_header_quals_exist_flag.DELETE;
Line: 30452

	      l_grouping_no.DELETE;
Line: 30453

	      l_eq_flag.DELETE;
Line: 30454

	      l_validated_flag.DELETE;
Line: 30455

	      l_modf_lvl_code.DELETE;
Line: 30456

	      l_other_oprt_count.DELETE;
Line: 30457

	      l_null_other_oprt_count.DELETE;
Line: 30458

	      l_list_type_code.DELETE;
Line: 30459

	      l_ask_for_flag.DELETE;
Line: 30460

	      l_hdr_lmt_exists.DELETE;
Line: 30461

	      l_line_lmt_exists.DELETE;
Line: 30462

	      l_curr_det_id.DELETE;
Line: 30463

	      l_curr_hdr_id.DELETE;
Line: 30464

	      L_SELLNG_ROUND_FTR.DELETE;
Line: 30465

              l_base_curr_code.DELETE;
Line: 30466

              l_prcng_effctve_dt.DELETE;
Line: 30467

              l_PRICE_BREAK_TYPE_CODE.DELETE;
Line: 30468

	      l_descnt_quals_exist.DELETE;
Line: 30469

	      l_qual_effective_precedence.delete;  --bug 12731268
Line: 30536

	    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
					);
Line: 30632

	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');
Line: 30666

	      l_list_header_id_tbl.DELETE;
Line: 30667

	      l_list_line_id_tbl.DELETE;
Line: 30668

	      l_line_index_tbl.DELETE;
Line: 30669

	      l_matched_pattrn_id_tbl.DELETE;
Line: 30670

	      l_pricing_phase_id_tbl.DELETE;
Line: 30671

	      l_stage_tbl.DELETE;
Line: 30672

	      l_matched_hash_key_tbl.DELETE;
Line: 30673

	      l_pricing_status_code_tbl.DELETE;
Line: 30674

	      l_ssc.DELETE;
Line: 30675

	      l_header_quals_exist_flag.DELETE;
Line: 30676

	      l_grouping_no.DELETE;
Line: 30677

	      l_eq_flag.DELETE;
Line: 30678

	      l_validated_flag.DELETE;
Line: 30679

	      l_modf_lvl_code.DELETE;
Line: 30680

	      l_other_oprt_count.DELETE;
Line: 30681

	      l_null_other_oprt_count.DELETE;
Line: 30682

	      l_list_type_code.DELETE;
Line: 30683

	      l_ask_for_flag.DELETE;
Line: 30684

	      l_hdr_lmt_exists.DELETE;
Line: 30685

	      l_line_lmt_exists.DELETE;
Line: 30686

              l_brk_uom_code.DELETE;
Line: 30687

              l_brk_uom_ctxt.DELETE;
Line: 30688

              l_brk_uom_attr.DELETE;
Line: 30689

              l_order_curr.DELETE;
Line: 30690

	      l_curr_det_id.DELETE;
Line: 30691

              l_curr_hdr_id.DELETE;
Line: 30692

              L_SELLNG_ROUND_FTR.DELETE;
Line: 30693

              l_base_curr_code.DELETE;
Line: 30694

              l_prcng_effctve_dt.DELETE;
Line: 30695

              l_PRICE_BREAK_TYPE_CODE.DELETE;
Line: 30696

	      l_descnt_quals_exist.DELETE;
Line: 30769

	    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)
					);
Line: 30879

	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');
Line: 30942

              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;
Line: 30964

	   qp_debug_util.tstart('BIG_SRCH_UPD_REQ_LIN_STATUS','Updating Request Lines Status - Update_Request_Line_Status API');
Line: 30966

           Update_Request_Line_Status(p_control_rec,'SUCCESS',p_freeze_override_flag,l_return_status,l_status_text);  --[julin/4708044]
Line: 30994

	   Update_Request_Line_Status(p_control_rec,'FAILURE',p_freeze_override_flag,x_status_code,x_status_text);  --[juiln/4708044]
Line: 31082

END select_price_list_lines_pat;
Line: 31085

  |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;
Line: 31446

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;
Line: 31927

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;
Line: 32325

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;
Line: 32862

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
Line: 32943

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;
Line: 33074

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;
Line: 33174

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;
Line: 33324

l_routine VARCHAR2(240):='Routine:QP_PREQ_GRP.Select_Price_List_Lines';
Line: 33342

   engine_debug('Before Big Select');
Line: 33360

       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;
Line: 33414

      engine_debug('shu dbg, after bulk insert');
Line: 33561

       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;
Line: 33790

       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;
Line: 33934

       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;
Line: 34119

       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;
Line: 34296

       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;
Line: 34514

       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;
Line: 34648

       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;
Line: 34819

qp_debug_util.tstart('INSERT_LDETS_PRICE_LIST_MULT_NON_MULTI','Inserting into ldets INSERT_LDETS_PRICE_LIST_MULT_NON_MULTI');
Line: 34822

  engine_debug('last 4 cursors- multi-currency TRUE - insert_ldets2');
Line: 34824

  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);
Line: 34862

  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
                 );
Line: 34894

qp_debug_util.tstop('INSERT_LDETS_PRICE_LIST_MULT_NON_MULTI');
Line: 34898

qp_debug_util.tstart('INSERT_PRICE_LIST_ATTRS','Inserting into line attrs INSERT_PRICE_LIST_ATTRS');
Line: 34899

   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);
Line: 34930

qp_debug_util.tstop('INSERT_PRICE_LIST_ATTRS');
Line: 34949

      engine_debug('< In Select_Price_List_Lines>: '||SQLERRM);
Line: 35002

END SELECT_PRICE_LIST_LINES;
Line: 35006

  |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);
Line: 35029

SELECT line_index
FROM   qp_npreq_lines_tmp
WHERE  line_type_code <> G_ORDER_LEVEL;
Line: 35047

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);
Line: 35062

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));
Line: 35088

       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
Line: 35105

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;
Line: 35148

  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;
Line: 35162

    l_a_list_header_id_tbl.delete;
Line: 35163

    l_a_line_index_tbl.delete;
Line: 35165

    l_b_list_header_id_tbl.delete;
Line: 35166

    l_b_rowid_tbl.delete;
Line: 35168

    l_c_line_index_tbl.delete;
Line: 35169

    l_c_g_line_level_tbl.delete;
Line: 35170

    l_c_G_QUALIFIER_TYPE_tbl.delete;
Line: 35171

    l_c_G_LIST_HEADER_CONTEXT_tbl.delete;
Line: 35172

    l_c_QUALIFIER_ATTRIBUTE4_tbl.delete;
Line: 35173

    l_c_list_header_id_tbl.delete;
Line: 35174

    l_c_G_VALIDATED_tbl.delete;
Line: 35175

    l_c_G_LIST_APPLIED_tbl.delete;
Line: 35176

    l_c_G_STATUS_UNCHANGED_tbl.delete;
Line: 35177

    l_c_PRICING_STATUS_TEXT_tbl.delete;
Line: 35226

                l_c_pricing_status_text_tbl(C) := 'Inserted by Create_Qualifier_From_List';
Line: 35244

      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);
Line: 35252

      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);
Line: 35260

      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));
Line: 35291

                UPDATE_ROUNDING_FACTOR (
                        QP_PREQ_GRP.G_MCURR_INSTALLED_USED,
                        l_status_code,
                        l_status_text);
Line: 35319

  |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;
Line: 35375

  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;
Line: 35419

   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
Line: 35484

  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;
Line: 35495

   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;
Line: 35506

  SELECT LINE_INDEX
  FROM   qp_npreq_rltd_lines_tmp
  WHERE  RELATED_LINE_INDEX = l_line_index
  AND    RELATIONSHIP_TYPE_CODE = G_SERVICE_LINE;
Line: 35516

  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;
Line: 35533

  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;
Line: 35544

	SELECT name
	FROM qp_list_headers_v a
 	WHERE a.list_header_id = p_list_header_id;
Line: 35549

	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;
Line: 35558

 	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;
Line: 35656

  /* UPDATE qp_npreq_ldets_tmp
  SET    PRICING_GROUP_SEQUENCE = NULL
  WHERE  AUTOMATIC_FLAG = G_NO; */
Line: 35672

  G_UNIT_PRICE_TBL_C.delete;
Line: 35673

  G_LINE_UNIT_PRICE_TBL_C.delete; -- shu_latest
Line: 35674

  G_ORDER_UOM_TBL_C.delete; -- bug 2693700
Line: 35675

  G_PERCENT_PRICE_TBL_C.delete;
Line: 35676

  G_ADJUSTED_UNIT_PRICE_TBL_C.delete;
Line: 35677

  G_PARENT_PRICE_TBL_C.delete;
Line: 35678

  G_PARENT_PRICED_QUANTITY_TBL_C.delete;
Line: 35679

  G_PARENT_LINE_QUANTITY_TBL_C.delete;
Line: 35680

  G_PARENT_LINE_UOM_TBL_C.delete;
Line: 35681

  G_LINE_INDEX_TBL_C.delete;
Line: 35682

  G_GSA_LINE_INDEX_TBL_C.delete;
Line: 35683

  G_EXTENDED_PRICE_TBL_C.delete; -- block pricing
Line: 35685

  G_ADJUSTMENT_AMOUNT_TBL_D.delete;
Line: 35687

  G_BENEFIT_QUANTITY_TBL_D.delete;
Line: 35688

  G_OPERAND_VALUE_TBL_D.delete;
Line: 35689

  G_QUALIFIER_VALUE_TBL_D.delete;
Line: 35690

  G_LINE_DETAIL_INDEX_TBL_D.delete;
Line: 35691

  G_OPR_CALC_CODE_TBL_D.delete; --bug#12916970
Line: 35693

  G_LINE_QUANTITY_TBL_R.delete;
Line: 35694

  G_ADJUSTMENT_AMOUNT_TBL_R.delete;
Line: 35695

  G_LINE_DETAIL_INDEX_TBL_R.delete;
Line: 35696

  G_PARENT_PRICE_TBL_P.delete;
Line: 35778

        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);
Line: 35845

                 IF (K.SELECTED_VOLUME_ATTR = G_AMOUNT) THEN -- 2388011_new
                   p_cal_req_ldets_tbl(J).qualifier_value  := nvl(K.line_quantity,0);
Line: 35855

                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);
Line: 35916

                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;
Line: 35968

   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);
Line: 35999

engine_debug ('In Line Update Information100');
Line: 36183

engine_debug ('In Line Update Information200');
Line: 36210

engine_debug ('In Line Update Information300');
Line: 36219

engine_debug ('In Line Update Information3001');
Line: 36235

engine_debug ('In Line Update Information400');
Line: 36256

 	 	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;
Line: 36262

  		DELETE_LINES (i.LINE_INDEX,
                  		G_STATUS_INVALID_PRICE_LIST,
                  		l_message,
                                l_status_code,
                                l_status_text);
Line: 36321

       		SET_STATUS_CODE(G_STATUS_DELETED,
                       l_message,
                       I.LINE_INDEX,
                       NULL,
                      'ATTRS',
                      l_status_code,
                      l_status_text);
Line: 36329

       		SET_STATUS_CODE(G_STATUS_DELETED,
                       l_message,
                       I.LINE_INDEX,
                       NULL,
                      'LDETS',
                      l_status_code,
                      l_status_text);
Line: 36349

 p_cal_req_ldets_tbl.DELETE ;
Line: 36350

 p_cal_req_rltd_tbl.DELETE;
Line: 36358

engine_debug ('In Line Update Information500');
Line: 36363

engine_debug ('In Line Update Information');
Line: 36366

  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;
Line: 36394

engine_debug ('In Line Update Information600');
Line: 36399

 engine_debug ('In Line Detail Update Information1');
Line: 36403

   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);
Line: 36415

engine_debug ('In Line Detail Update Information2');
Line: 36420

   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);
Line: 36434

engine_debug ('In Line Detail Update Information3');
Line: 36439

  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);
Line: 36449

  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);
Line: 36455

engine_debug ('In End Update Information');
Line: 36459

  G_UNIT_PRICE_TBL_C.delete;
Line: 36460

  G_PERCENT_PRICE_TBL_C.delete;
Line: 36461

  G_ADJUSTED_UNIT_PRICE_TBL_C.delete;
Line: 36462

  G_PARENT_PRICE_TBL_C.delete;
Line: 36463

  G_PARENT_PRICED_QUANTITY_TBL_C.delete;
Line: 36464

  G_PARENT_LINE_QUANTITY_TBL_C.delete;
Line: 36465

  G_PARENT_LINE_UOM_TBL_C.delete;
Line: 36466

  G_LINE_INDEX_TBL_C.delete;
Line: 36467

  G_GSA_LINE_INDEX_TBL_C.delete;
Line: 36468

  G_EXTENDED_PRICE_TBL_C.delete; -- block pricing
Line: 36470

  G_ADJUSTMENT_AMOUNT_TBL_D.delete;
Line: 36472

  G_BENEFIT_QUANTITY_TBL_D.delete;
Line: 36473

  G_OPERAND_VALUE_TBL_D.delete;
Line: 36474

  G_QUALIFIER_VALUE_TBL_D.delete;
Line: 36475

  G_LINE_DETAIL_INDEX_TBL_D.delete;
Line: 36477

  G_LINE_QUANTITY_TBL_R.delete;
Line: 36478

  G_ADJUSTMENT_AMOUNT_TBL_R.delete;
Line: 36479

  G_LINE_DETAIL_INDEX_TBL_R.delete;
Line: 36486

     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);
Line: 36519

  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;
Line: 36532

  SELECT UNIT_PRICE
  FROM   qp_npreq_lines_tmp
  WHERE  LINE_INDEX = p_line_index;
Line: 36549

  l_attr_inserted_flag       BOOLEAN := FALSE;
Line: 36574

    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');
Line: 36594

    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');
Line: 36612

 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';
Line: 36629

    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');
Line: 36662

            IF G_INSERT_INTO_FORMULA_TMP
            THEN

             --Delete already existing rows from formula tmp table
             DELETE FROM qp_preq_line_attrs_formula_tmp;
Line: 36673

                 l_line_index_tbl.delete;
Line: 36674

                 l_attribute_type_tbl.delete;
Line: 36675

                 l_context_tbl.delete;
Line: 36676

                 l_attribute_tbl.delete;
Line: 36677

                 l_pricing_status_code_tbl.delete;
Line: 36678

                 l_value_from_tbl.delete;
Line: 36691

                   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))
                   );
Line: 36719

                 l_line_index_tbl.delete;
Line: 36720

                 l_attribute_type_tbl.delete;
Line: 36721

                 l_context_tbl.delete;
Line: 36722

                 l_attribute_tbl.delete;
Line: 36723

                 l_pricing_status_code_tbl.delete;
Line: 36724

                 l_value_from_tbl.delete;
Line: 36735

                   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))
                   );
Line: 36783

               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
Line: 36824

                 l_line_index_tbl.delete;
Line: 36825

                 l_attribute_type_tbl.delete;
Line: 36826

                 l_context_tbl.delete;
Line: 36827

                 l_attribute_tbl.delete;
Line: 36828

                 l_pricing_status_code_tbl.delete;
Line: 36829

                 l_value_from_tbl.delete;
Line: 36843

                   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))
                   );
Line: 36873

               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');
Line: 36909

             G_INSERT_INTO_FORMULA_TMP := FALSE;
Line: 36912

            END IF; --If G_INSERT_INTO_FORMULA_TMP is true
Line: 36919

            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;
Line: 36927

            l_attr_inserted_flag := FALSE;
Line: 36929

            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';
Line: 36935

                    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)
                    );
Line: 36956

                l_attr_inserted_flag := TRUE;
Line: 36960

            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';
Line: 36965

                    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)
                    );
Line: 36986

                l_attr_inserted_flag := TRUE;
Line: 37058

	    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;
Line: 37068

	    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;
Line: 37079

	    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;
Line: 37089

	    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;
Line: 37100

         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;
Line: 37110

            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;
Line: 37125

           G_INSERT_INTO_FORMULA_TMP := FALSE; --Reset Global Flag ( Change)
Line: 37126

           DELETE_LINES(l_line_index,
                  G_STATUS_FORMULA_ERROR,
                  FND_MESSAGE.GET,
                  l_status_code,
                  l_status_text);
Line: 37140

     G_INSERT_INTO_FORMULA_TMP := FALSE; --Reset Global Flag ( Change)
Line: 37141

     DELETE_LINES(l_line_index,
                  G_STATUS_FORMULA_ERROR,
                  FND_MESSAGE.GET,
                  l_status_code,
                  l_status_text);
Line: 37153

     G_INSERT_INTO_FORMULA_TMP := FALSE; --Reset Global Flag ( Change)
Line: 37155

     DELETE_LINES(l_line_index,
                  G_STATUS_FORMULA_ERROR,
                  FND_MESSAGE.GET,
                  l_status_code,
                  l_status_text);
Line: 37165

     G_INSERT_INTO_FORMULA_TMP := FALSE; --Reset Global Flag ( Change)
Line: 37167

     DELETE_LINES(l_line_index,
                  G_STATUS_FORMULA_ERROR,
                  FND_MESSAGE.GET,
                  l_status_code,
                  l_status_text);
Line: 37193

	--Delete from qp_npreq_lines_tmp;
Line: 37194

	--Delete from qp_npreq_line_attrs_tmp;
Line: 37195

	--Delete From qp_npreq_ldets_tmp;
Line: 37196

	--Delete From qp_npreq_rltd_lines_tmp;
Line: 37203

	   select count(*) into l_count from qp_npreq_lines_tmp;
Line: 37207

	   select count(*) into l_count from qp_npreq_line_attrs_tmp;
Line: 37211

	   select count(*) into l_count from qp_npreq_ldets_tmp;
Line: 37221

	--Delete from qp_int_lines;
Line: 37222

	--Delete from qp_int_line_attrs;
Line: 37223

	--Delete From qp_int_ldets;
Line: 37224

	--Delete From qp_int_rltd_lines;
Line: 37228

	   select count(*) into l_count from qp_int_lines;
Line: 37232

	   select count(*) into l_count from qp_int_line_attrs;
Line: 37236

	   select count(*) into l_count from qp_int_ldets;
Line: 37275

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)
     );
Line: 37291

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;
Line: 37325

  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);
Line: 37352

  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;
Line: 37375

  PROCEDURE INSERT_QUALIFIER_HIERARCHY
IS
l_count number;
Line: 37379

select count(*) into l_count from qp_npreq_line_attrs_tmp;
Line: 37381

engine_debug('count of attr before insert  '|| l_count);
Line: 37384

   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;
Line: 37477

END INSERT_QUALIFIER_HIERARCHY;
Line: 37505

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;
Line: 37527

/*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
); */
Line: 37543

/*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
);*/
Line: 37555

engine_debug(l_routine || 'Updated segment_id of ' || SQL%ROWCOUNT || ' rows of qp_npreq_line_attrs_tmp');
Line: 37592

 QP_DEBUG_UTIL.tstart('insert_patrn_phases', 'insert_patrn_phases');
Line: 37593

        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
 );
Line: 37613

 QP_DEBUG_UTIL.tstop('insert_patrn_phases');
Line: 37617

  engine_debug(l_routine || 'inserted ' || SQL%ROWCOUNT || ' rows into qp_npreq_patrn_phases_tmp'
   || ' pricing_phase_id = ' || p_pricing_phase_id);
Line: 37620

 qp_debug_util.tstart('insert_line_patrns', 'insert_line_patrns');
Line: 37630

    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;
Line: 37652

  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;
Line: 37669

        Dbms_Output.put_line('inserted = ' || SQL%ROWCOUNT);
Line: 37672

 QP_DEBUG_UTIL.tstop('insert_line_patrns');
Line: 37677

  engine_debug(l_routine || 'inserted ' || SQL%ROWCOUNT || ' rows to qp_npreq_line_patrns_tmp'
   || ' pricing_phase_id = ' || p_pricing_phase_id);
Line: 37683

 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');
Line: 37692

   INSERT INTO qp_npreq_line_patrns_tmp(line_index, pattern_id, hash_key)
    SELECT line_index, -2, 'BLIND'
    FROM qp_npreq_lines_tmp;
Line: 37697

  INSERT INTO qp_npreq_line_patrns_tmp(line_index, pattern_id, hash_key)
   SELECT line_index, -3, 'BLIND'
   FROM qp_npreq_lines_tmp;
Line: 37701

   INSERT INTO qp_npreq_line_patrns_tmp(line_index, pattern_id, hash_key)
   SELECT line_index, -1, 'NOEQUALS'
   FROM qp_npreq_lines_tmp;
Line: 37705

  G_PATRNS_TWO_THREE_INSERTED :=  'Y';
Line: 37733

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);
Line: 37828

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);
Line: 37903

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);
Line: 38091

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)));
Line: 38136

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);*/
Line: 38283

l_routine VARCHAR2(40) := 'Select_modifiers_patrn';
Line: 38292

	    qp_preq_grp.engine_debug('Entering into pattern Select_modifiers_patrn');
Line: 38300

	    qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_HDR_CACHE_CUR',   'l_header_cache_cur');
Line: 38304

	      l_list_header_id_tbl.DELETE;
Line: 38305

	      l_list_line_id_tbl.DELETE;
Line: 38306

	      l_line_index_tbl.DELETE;
Line: 38307

	      l_matched_pattrn_id_tbl.DELETE;
Line: 38308

	      l_pricing_phase_id_tbl.DELETE;
Line: 38309

	      l_stage_tbl.DELETE;
Line: 38310

	      l_matched_hash_key_tbl.DELETE;
Line: 38311

	      l_pricing_status_code_tbl.DELETE;
Line: 38312

	      l_ssc.DELETE;
Line: 38313

	      l_header_quals_exist_flag.DELETE;
Line: 38314

	      l_grouping_no.DELETE;
Line: 38315

	      l_eq_flag.DELETE;
Line: 38316

	      l_modf_lvl_code.DELETE;
Line: 38317

	      l_other_oprt_count.DELETE;
Line: 38318

	      l_null_other_oprt_count.DELETE;
Line: 38319

              l_list_type_code.DELETE;
Line: 38320

              l_ask_for_flag.DELETE;
Line: 38321

              l_hdr_lmt_exists.DELETE;
Line: 38322

              l_line_lmt_exists.DELETE;
Line: 38323

              l_descnt_quals_exist.DELETE;
Line: 38352

	    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));
Line: 38399

	  qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_HDR_CACHE_CUR');
Line: 38432

	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');
Line: 38457

  qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_LINE_CACHE_CUR',   'l_line_cache_cur');
Line: 38462

    l_list_header_id_tbl.DELETE;
Line: 38463

    l_list_line_id_tbl.DELETE;
Line: 38464

    l_line_index_tbl.DELETE;
Line: 38465

    l_matched_pattrn_id_tbl.DELETE;
Line: 38466

    l_pricing_phase_id_tbl.DELETE;
Line: 38467

    l_stage_tbl.DELETE;
Line: 38468

    l_matched_hash_key_tbl.DELETE;
Line: 38469

    l_pricing_status_code_tbl.DELETE;
Line: 38470

    l_ssc.DELETE;
Line: 38471

    l_header_quals_exist_flag.DELETE;
Line: 38472

    l_grouping_no.DELETE;
Line: 38473

    l_eq_flag.DELETE;
Line: 38474

    l_modf_lvl_code.DELETE;
Line: 38475

    l_other_oprt_count.DELETE;
Line: 38476

    l_null_other_oprt_count.DELETE;
Line: 38477

    l_list_type_code.DELETE;
Line: 38478

    l_ask_for_flag.DELETE;
Line: 38479

    l_hdr_lmt_exists.DELETE;
Line: 38480

    l_line_lmt_exists.DELETE;
Line: 38481

    l_descnt_quals_exist.DELETE;
Line: 38482

    l_PRICE_BREAK_TYPE_CODE.DELETE;
Line: 38513

  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)
					);
Line: 38563

	qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_LINE_CACHE_CUR');
Line: 38596

	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');
Line: 38620

qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_BOTH_CACHE_CUR_PATH2',   'l_both_cache_path2_cur');
Line: 38625

l_list_header_id_tbl.DELETE;
Line: 38626

l_list_line_id_tbl.DELETE;
Line: 38627

l_line_index_tbl.DELETE;
Line: 38628

l_hdr_matched_pattrn_id_tbl.DELETE;
Line: 38629

l_lin_matched_pattrn_id_tbl.DELETE;
Line: 38630

l_pricing_phase_id_tbl.DELETE;
Line: 38631

l_stage_tbl.DELETE;
Line: 38632

l_hdr_matched_hash_key_tbl.DELETE;
Line: 38633

l_lin_matched_hash_key_tbl.DELETE;
Line: 38634

l_pricing_status_code_tbl.DELETE;
Line: 38635

l_ssc.DELETE;
Line: 38636

l_header_quals_exist_flag.DELETE;
Line: 38637

l_hdr_grouping_no.DELETE;
Line: 38638

l_lin_grouping_no.DELETE;
Line: 38639

l_hdr_eq_flag.DELETE;
Line: 38640

l_lin_eq_flag.DELETE;
Line: 38641

l_modf_lvl_code.DELETE;
Line: 38642

l_hdr_other_oprt_count.DELETE;
Line: 38643

l_hdr_null_other_oprt_count.DELETE;
Line: 38644

l_lin_other_oprt_count.DELETE;
Line: 38645

l_lin_null_other_oprt_count.DELETE;
Line: 38646

l_list_type_code.DELETE;
Line: 38647

l_ask_for_flag.DELETE;
Line: 38648

l_hdr_lmt_exists.DELETE;
Line: 38649

l_line_lmt_exists.DELETE;
Line: 38684

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;
Line: 38726

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';
Line: 38771

	qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_BOTH_CACHE_CUR_PATH2');
Line: 38817

qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_DEL_HDR_PATH2',   'Line deletion');
Line: 38819

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);
Line: 38834

qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_DEL_HDR_PATH2');*/
Line: 38836

qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_LIN_CACHE_CUR_PATH2',   'l_line_cache_path2_cur');
Line: 38843

l_list_header_id_tbl.DELETE;
Line: 38844

l_list_line_id_tbl.DELETE;
Line: 38845

l_line_index_tbl.DELETE;
Line: 38846

l_matched_pattrn_id_tbl.DELETE;
Line: 38847

l_pricing_phase_id_tbl.DELETE;
Line: 38848

l_stage_tbl.DELETE;
Line: 38849

l_matched_hash_key_tbl.DELETE;
Line: 38850

l_pricing_status_code_tbl.DELETE;
Line: 38851

l_ssc.DELETE;
Line: 38852

l_header_quals_exist_flag.DELETE;
Line: 38853

l_grouping_no.DELETE;
Line: 38854

l_eq_flag.DELETE;
Line: 38855

l_modf_lvl_code.DELETE;
Line: 38856

l_other_oprt_count.DELETE;
Line: 38857

l_null_other_oprt_count.DELETE;
Line: 38858

l_list_type_code.DELETE;
Line: 38859

l_ask_for_flag.DELETE;
Line: 38860

l_hdr_lmt_exists.DELETE;
Line: 38861

l_line_lmt_exists.DELETE;
Line: 38862

l_descnt_quals_exist.DELETE;
Line: 38863

l_PRICE_BREAK_TYPE_CODE.DELETE;
Line: 38894

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)
					);
Line: 38942

	qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_LIN_CACHE_CUR_PATH2');
Line: 38978

qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_HDR_CACHE_CUR_PATH2',   'l_hdr_cache_cur_path2');
Line: 38984

l_list_header_id_tbl.DELETE;
Line: 38985

l_list_line_id_tbl.DELETE;
Line: 38986

l_line_index_tbl.DELETE;
Line: 38987

l_matched_pattrn_id_tbl.DELETE;
Line: 38988

l_pricing_phase_id_tbl.DELETE;
Line: 38989

l_stage_tbl.DELETE;
Line: 38990

l_matched_hash_key_tbl.DELETE;
Line: 38991

l_pricing_status_code_tbl.DELETE;
Line: 38992

l_ssc.DELETE;
Line: 38993

l_header_quals_exist_flag.DELETE;
Line: 38994

l_grouping_no.DELETE;
Line: 38995

l_eq_flag.DELETE;
Line: 38996

l_modf_lvl_code.DELETE;
Line: 38997

l_other_oprt_count.DELETE;
Line: 38998

l_null_other_oprt_count.DELETE;
Line: 38999

l_list_type_code.DELETE;
Line: 39000

l_ask_for_flag.DELETE;
Line: 39001

l_hdr_lmt_exists.DELETE;
Line: 39002

l_line_lmt_exists.DELETE;
Line: 39003

l_descnt_quals_exist.DELETE;
Line: 39033

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));
Line: 39079

	qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_HDR_CACHE_CUR_PATH2');
Line: 39111

	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');
Line: 39135

	qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_DEL_HDR_PATH2',   'Line deletion');
Line: 39137

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);
Line: 39154

qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_DEL_HDR_PATH2');
Line: 39159

qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_UPD_EXCLUDER',   'Delete Excluder rows');
Line: 39163

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);
Line: 39181

qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_UPD_EXCLUDER');
Line: 39183

qp_debug_util.tstart('PATRN_SELECT_MODIFIERS_POPULATE_PAT_TEMP_TABLES',   'Populate_Pat_Temp_Tables');
Line: 39207

qp_debug_util.tstop('PATRN_SELECT_MODIFIERS_POPULATE_PAT_TEMP_TABLES');
Line: 39273

END Select_modifiers_patrn;
Line: 39287

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);
Line: 39311

        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);
Line: 39337

	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);
Line: 39381

	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);
Line: 39427

		qp_preq_grp.engine_debug('Number of rows deleted during NOT = and B/W operator evaluation for the non -1 groups-'||sql%rowcount);
Line: 39473

     Populating table qp_npreq_ldets_tmp with details of all selected modifier
     lines after Pattern matching.
   */

  l_start_line_index := G_MIN_LINE_INDEX;
Line: 39480

  qp_debug_util.tstart('POPULATE_PAT_TEMP_TABLES_QR1','Populate_Pat_Temp_Tables inserting LDETS');
Line: 39485

  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;
Line: 39619

     qp_preq_grp.engine_debug('Successfully inserted data in table qp_npreq_ldets_tmp');
Line: 39622

   qp_debug_util.tstart('POPULATE_PAT_TEMP_TABLES_QR3','Populate_Pat_Temp_Tables Inserting line attrs temp');
Line: 39626

     Attributes for selected modifier lines.
   */

  l_start_line_index := G_MIN_LINE_INDEX;
Line: 39635

  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;
Line: 39779

     qp_preq_grp.engine_debug('Successfully inserted data in table qp_npreq_line_attrs_tmp');
Line: 39786

     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');
Line: 39811

      Qualifier Attributes for selected qualifier groups of selected modifier lines.
     */

     l_start_line_index := G_MIN_LINE_INDEX;
Line: 39820

     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;
Line: 39966

        qp_preq_grp.engine_debug('Successfully inserted header level qualifiers in table qp_npreq_line_attrs_tmp');
Line: 39971

      qp_debug_util.tstart('POPULATE_PAT_TEMP_TABLES_QR5','Insert Line Qualifiers in Attrs Table');
Line: 39975

       attributes for selected qualifier groups of selected modifier lines.
      */

    l_start_line_index := G_MIN_LINE_INDEX;
Line: 39984

      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;
Line: 40128

        qp_preq_grp.engine_debug('Successfully inserted line level qualifiers in table qp_npreq_line_attrs_tmp');
Line: 40139

  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;
Line: 40155

       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;
Line: 40211

      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
Line: 40341

        qp_preq_grp.engine_debug('Successfully inserted Line level BETWEEN , Not = Qualifiers Attributes in table qp_npreq_line_attrs_tmp');
Line: 40357

      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;
Line: 40446

      qp_preq_grp.engine_debug('Successfully inserted  BETWEEN , Not = Pricing Attributes in table qp_npreq_line_attrs_tmp');
Line: 40461

      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
Line: 40595

        qp_preq_grp.engine_debug('Successfully inserted Header level BETWEEN , Not = Qualifiers Attributes in table qp_npreq_line_attrs_tmp');
Line: 40727

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 ;
Line: 40749

  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;
Line: 40797

  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;  */
Line: 40933

  SELECT DISTINCT LINE_INDEX
  FROM   qp_npreq_ldets_tmp
  WHERE  PRICING_PHASE_ID = p_pricing_phase_id
  AND    PRICING_STATUS_CODE = G_STATUS_NEW;
Line: 40942

  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;
Line: 40951

  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));
Line: 40962

  SELECT REQUEST_TYPE_CODE
  FROM qp_npreq_lines_tmp
  WHERE rownum=1;
Line: 40970

SELECT REQUEST_TYPE_CODE,LINE_INDEX,LINE_TYPE_CODE,PRICE_FLAG,PRICE_LIST_HEADER_ID,ROUNDING_FACTOR
FROM qp_npreq_lines_tmp;
Line: 40974

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;
Line: 40997

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');
Line: 41018

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;
Line: 41026

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);*/
Line: 41036

SELECT CONTEXT,
       ATTRIBUTE,
       VALUE_FROM,
       LINE_INDEX,
       LINE_DETAIL_INDEX
FROM   qp_npreq_line_attrs_tmp;
Line: 41050

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));
Line: 41075

 SELECT MAX(LINE_DETAIL_INDEX)
 FROM   qp_npreq_ldets_tmp;
Line: 41083

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 ;
Line: 41093

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
Line: 41101

SELECT 'X'
FROM   qp_limit_transactions
WHERE  price_request_code > fnd_global.local_chr(0);
Line: 41109

SELECT status
FROM   fnd_product_installations
WHERE  application_id=l_product_app_id;
Line: 41116

   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';
Line: 41133

   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');
Line: 41150

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';
Line: 41163

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
Line: 41173

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
Line: 41216

  SELECT DECODE(G_PAT_SEARCH_PATH,1,'Search Headers First','Search Lines First') INTO l_patrn_srch_path_desc FROM dual;
Line: 41231

   SELECT COUNT(*) INTO l_lines_cnt FROM qp_npreq_lines_tmp;
Line: 41255

   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';
Line: 41319

G_TEMP_TABLE_INSERT_FLAG := nvl(p_control_rec.temp_table_insert_flag,'Y');
Line: 41332

  G_CHILD_VALUE_FROM_TBL.delete;
Line: 41333

  G_CHILD_VALUE_TO_TBL.delete;
Line: 41334

  G_PARENT_LINE_DETAIL_INDEX_TBL.delete;
Line: 41345

 G_INSERT_INTO_FORMULA_TMP := FALSE;
Line: 41346

 G_INSERT_FORMULA_STEP_VALUES := nvl(FND_PROFILE.VALUE('QP_INSERT_FORMULA_STEP_VALUES'),'Y');
Line: 41399

 IF (G_TEMP_TABLE_INSERT_FLAG = G_YES) THEN
  QP_Price_Request_Context.Set_Request_Id;
Line: 41411

 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');
Line: 41432

 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');
Line: 41443

END IF;--temp_table_insert_flag
Line: 41446

 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');
Line: 41525

IF G_TEMP_TABLE_INSERT_FLAG = G_YES THEN

 /*Truncate_Temp_Tables (l_return_status,l_status_text);
Line: 41557

     x_line_tbl(I).STATUS_CODE := QP_PREQ_GRP.G_STATUS_UPDATED;
Line: 41606

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');
Line: 41638

 SELECT 1
 INTO l_price_flag_indx
 FROM qp_npreq_lines_tmp
 WHERE PRICE_FLAG IN (G_YES,G_PHASE)
 AND   ROWNUM=1;
Line: 41645

 SELECT 1
 INTO l_price_flag_indx
 FROM qp_int_lines
 WHERE PRICE_FLAG IN (G_YES, G_PHASE)
 AND ROWNUM=1;
Line: 41658

engine_debug('Direct Temp Table Insert Price Flag Yes Only : '||l_price_flag_yes_only);
Line: 41665

 engine_debug('No Pricing. Returning, call from direct insert into temp tables by calling app');
Line: 41670

END IF;---p_control_rec.temp_table_insert_flag = G_NO
Line: 41678

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);
Line: 41714

    select line_id
    into G_ORDER_ID
    from qp_npreq_lines_tmp
    where line_type_code = QP_PREQ_GRP.G_ORDER_LEVEL;
Line: 41747

		     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);
Line: 41787

/*+------------------TO INSERT HIERARCHY RECORDS IN ATTRS_TMP  Added for TCA ----+*/

 INSERT_QUALIFIER_HIERARCHY;
Line: 41800

Update_Processing_Order(l_return_status,l_status_text);
Line: 41802

engine_debug('After calling update_procss--');
Line: 41852

            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
Line: 41896

	    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');
Line: 41941

engine_debug ('G_TEMP_TABLE_INSERT_FLAG: '||G_TEMP_TABLE_INSERT_FLAG);
Line: 41948

  SELECT pte_code
  INTO G_PTE_CODE
  FROM QP_PTE_REQUEST_TYPES_B
  WHERE request_type_code = G_REQUEST_TYPE_CODE;
Line: 41960

 SELECT MIN(line_index), MAX(line_index)
 INTO G_MIN_LINE_INDEX,G_MAX_LINE_INDEX
 FROM QP_NPREQ_LINES_TMP;
Line: 41971

  IF G_REQUEST_TYPE_CODE = 'ASO' AND G_TEMP_TABLE_INSERT_FLAG='Y' THEN
    G_ROUNDING_FLAG := 'Q';
Line: 42009

  engine_debug('update_rounding_factor...');
Line: 42013

    	 	UPDATE_ROUNDING_FACTOR (
    	 		QP_PREQ_GRP.G_MCURR_INSTALLED_USED,
    	 		l_return_status,
                	l_status_text);
Line: 42031

			G_PATRNS_TWO_THREE_INSERTED := 'N';   --smuhamme, whethe pattern_id -2 and -3 inserted or not
Line: 42058

    G_INSERT_INTO_FORMULA_TMP := TRUE;
Line: 42076

     Update_Price_List_Information(I.freeze_override_flag, l_return_status, l_status_text);  -- fix bug 2756754
Line: 42126

          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
           );
Line: 42137

	  -- SELECT_PRICE_LIST_LINES_PATRN API CALL -- DEEPAK ADD CODE


	 END IF;
Line: 42172

     qp_debug_util.tstart('SELECT_PRICE_LIST_LINES','Select Price List Lines(Search Flag on) - SELECT_PRICE_LIST_LINES API');
Line: 42174

         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\
Line: 42179

	qp_debug_util.tstop('SELECT_PRICE_LIST_LINES');
Line: 42241

         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;
Line: 42256

         Update_Request_Line_Status(p_control_rec,'SUCCESS',i.freeze_override_flag,l_return_status,l_status_text);  --[julin/4708044]
Line: 42275

        /*OPEN l_chk_deleted_pbh_cur(J.line_index,G_PRICE_LIST_PHASE_ID);
Line: 42276

        FETCH l_chk_deleted_pbh_cur INTO l_dummy;
Line: 42277

        IF l_chk_deleted_pbh_cur%FOUND THEN
            Delete_Invalid_PBH_Children(J.line_index,G_PRICE_LIST_PHASE_ID);
Line: 42280

        CLOSE l_chk_deleted_pbh_cur;*/
Line: 42297

           DELETE_LINES(J.LINE_INDEX,
                        l_return_status,
                        l_status_text);
Line: 42389

      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;
Line: 42406

       engine_debug('update_rounding_factor...');
Line: 42411

    	 	UPDATE_ROUNDING_FACTOR (
    	 		QP_PREQ_GRP.G_MCURR_INSTALLED_USED,
    	 		l_return_status,
                	l_status_text);
Line: 42427

         G_INSERT_INTO_FORMULA_TMP := TRUE;
Line: 42439

         Update_Distinct_Qualifier_Flag(l_return_status,l_status_text);
Line: 42473

	 	--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');
Line: 42476

		  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);
Line: 42481

				  engine_debug('Select_modifiers_patrn-success-'||l_return_status);
Line: 42482

		 qp_debug_util.tstop('PATRN_SELECT_MODIFIERS');
Line: 42484

         ELSE --KDURGASI changes for pattern based select modifiers

	 qp_debug_util.tstart('SELECT_MODIFIERS','Modifier Selection - SELECT_MODIFIERS API');
Line: 42487

         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);
Line: 42492

         qp_debug_util.tstop('SELECT_MODIFIERS');
Line: 42499

	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);
Line: 42523

      END IF;  --KDURGASI changes for pattern based select modifiers
Line: 42555

     Delete_Un_Asked_For_Promotions(J.LINE_INDEX,
                                    I.pricing_phase_id,
                                    I.INCOMPAT_RESOLVE_CODE,
                                    l_return_status,
                                    l_status_text);
Line: 42572

           DELETE_LINES(J.LINE_INDEX,
                        l_return_status,
                        l_status_text,
                        l_error_status_code,
                        l_error_status_text);
Line: 42639

        OPEN l_chk_deleted_pbh_cur(J.line_index,I.pricing_phase_id);
Line: 42640

        FETCH l_chk_deleted_pbh_cur INTO l_dummy;
Line: 42641

        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);
Line: 42647

        CLOSE l_chk_deleted_pbh_cur;
Line: 42653

            DELETE_LINES(J.LINE_INDEX,
                        l_return_status,
                        l_status_text,
                        l_error_status_code,
                        l_error_status_text);
Line: 42676

           DELETE_LINES(J.LINE_INDEX,
                        l_return_status,
                        l_status_text);
Line: 42713

       UPDATE_ROUNDING_FACTOR (
         QP_PREQ_GRP.G_MCURR_INSTALLED_USED,
       l_return_status,
         l_status_text);
Line: 42789

     QP_Limit_Transactions_PVT.Delete(p_control_rec.pricing_event, l_return_status);
Line: 42805

     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;
Line: 42830

  UPDATE qp_npreq_lines_tmp
  SET UNIT_PRICE = v_order_amount,
      PRICED_QUANTITY = 1
  WHERE LINE_TYPE_CODE = 'ORDER';
Line: 42855

       QP_Limit_Transactions_PVT.Delete(p_control_rec.pricing_event, l_return_status);
Line: 42927

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);
Line: 42962

 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';
Line: 42983

	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 ';
Line: 42989

        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 ';
Line: 42991

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;
Line: 43006

 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 ';