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: 137

  G_SELECTED_VOLUME_ATTR_TBL         VARCHAR_TYPE;
Line: 341

  G_INSERT_INTO_FORMULA_TMP      BOOLEAN ; -- Change
Line: 403

  | 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: 415

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: 436

  p_price_list_id_tbl.delete;
Line: 437

  p_currency_code_tbl.delete;
Line: 438

  p_pricing_eff_date_tbl.delete;
Line: 477

   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: 485

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

   QP_COPY_DEBUG_PVT.INSERT_DEBUG_LINE(p_text);
Line: 538

  |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: 590

      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: 722

select /*+ ORDERED NO_EXPAND USE_NL(qpq qplatq qph)  index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N6)
       index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_outer_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ1' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
        p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag   -- Added for TCA
from
        (select distinct list_header_id,list_line_id,qualifier_grouping_no
         from qp_preq_qual_tmp
         where pricing_status_code = G_STATUS_UNCHANGED
         and   pricing_phase_id = p_pricing_phase_id) qptq,
        qp_qualifiers qpq ,
        qp_npreq_line_attrs_tmp qplatq,
        qp_list_headers_b qph,
	qp_price_req_sources_v qprs
where
        qpq.list_header_id = qptq.list_header_id
and     qpq.list_line_id = qptq.list_line_id
and     qpq.qualifier_grouping_no = qptq.qualifier_grouping_no
and     qpq.qualifier_grouping_no <> -1
and     qpq.qualifier_context      = qplatq.context
and     qpq.qualifier_attribute    = qplatq.attribute
and     qpq.qualifier_attr_value = qplatq.value_from
and     qpq.comparison_operator_code = '='
and     qpq.search_ind =  2
and     qpq.qualifier_group_cnt > 1
and     ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
         OR
         qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and    qph.list_type_code not in ('PRL','AGR')
and    qph.active_flag = G_YES
and    qpq.active_flag = G_YES
and    qpq.list_header_id = qph.list_header_id
and    qplatq.line_index > 0
and    qplatq.distinct_qualifier_flag = G_YES
and    qplatq.pricing_status_code = G_STATUS_UNCHANGED
and    qplatq.attribute_type = G_QUALIFIER_TYPE
and    qprs.request_type_code = G_REQUEST_TYPE_CODE
and    qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'))  -- Added for TCA
--and    qptq.pricing_status_code = G_STATUS_UNCHANGED
--and    qptq.pricing_phase_id = p_pricing_phase_id
union all
select /*+ ORDERED USE_NL(qpq qplatq qph)  index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N6) index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_o
uter_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ1' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
        p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag   -- Added for TCA
from
        (select distinct list_header_id,list_line_id
         from qp_preq_qual_tmp
         where pricing_status_code = G_STATUS_UNCHANGED
         and   pricing_phase_id = p_pricing_phase_id) qptq,
        qp_qualifiers qpq ,
        qp_npreq_line_attrs_tmp qplatq,
        qp_list_headers_b qph,
	qp_price_req_sources_v qprs
where
        qpq.list_header_id = qptq.list_header_id
and     qpq.list_line_id = qptq.list_line_id
and     qpq.qualifier_grouping_no = -1
and     qpq.qualifier_context      = qplatq.context
and     qpq.qualifier_attribute    = qplatq.attribute
and     qpq.qualifier_attr_value = qplatq.value_from
and     qpq.comparison_operator_code = '='
and     qpq.search_ind =  2
and     ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
         OR
         qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and    qph.list_type_code not in ('PRL','AGR')
and    qph.active_flag = G_YES
and    qpq.active_flag = G_YES
and    qpq.list_header_id = qph.list_header_id
and    qplatq.line_index > 0
and    qplatq.distinct_qualifier_flag = G_YES
and    qplatq.pricing_status_code = G_STATUS_UNCHANGED
and    qplatq.attribute_type = G_QUALIFIER_TYPE
and    qprs.request_type_code = G_REQUEST_TYPE_CODE
and    qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'))  -- Added for TCA
--and    qptq.pricing_status_code = G_STATUS_UNCHANGED
--and    qptq.pricing_phase_id = p_pricing_phase_id
union  all
select /*+ ORDERED USE_NL(qpq qplatq qph) index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N6) index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_outer_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ1' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
        p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag   -- Added for TCA
from
        (select distinct list_header_id,list_line_id,qualifier_grouping_no
         from qp_preq_qual_tmp
         where pricing_status_code = G_STATUS_UNCHANGED
         and   pricing_phase_id = p_pricing_phase_id) qptq,
        qp_qualifiers qpq ,
        qp_npreq_line_attrs_tmp qplatq,
        qp_list_headers_b qph,
	qp_price_req_sources_v qprs
where
        qpq.list_header_id = qptq.list_header_id
and     qpq.list_line_id = qptq.list_line_id
and     qpq.qualifier_grouping_no = qptq.qualifier_grouping_no
and     qpq.qualifier_grouping_no <> -1
and     qpq.qualifier_context      = qplatq.context
and     qpq.qualifier_attribute    = qplatq.attribute
and     qpq.comparison_operator_code =  G_OPERATOR_BETWEEN
and     qpq.qualifier_datatype =  G_NUMERIC
and     qpq.search_ind =  2
and     qpq.qualifier_group_cnt > 1
and     qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number
and     ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
         OR
         qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and    qph.list_type_code not in ('PRL','AGR')
and     qph.active_flag = G_YES
and     qpq.active_flag = G_YES
and     qpq.list_header_id = qph.list_header_id
and     qplatq.line_index > 0
and     qplatq.distinct_qualifier_flag = G_YES
and     qplatq.pricing_status_code = G_STATUS_UNCHANGED
and     qplatq.attribute_type = G_QUALIFIER_TYPE
and    qprs.request_type_code = G_REQUEST_TYPE_CODE
and    qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'))  -- Added for TCA
--and    qptq.pricing_status_code = G_STATUS_UNCHANGED
--and    qptq.pricing_phase_id = p_pricing_phase_id
union all
select /*+ ORDERED USE_NL(qpq qplatq qph) index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N6) index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_ou
ter_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ1' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
        p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag  -- Added for TCA
from
        (select distinct list_header_id,list_line_id
         from qp_preq_qual_tmp
         where pricing_status_code = G_STATUS_UNCHANGED
         and   pricing_phase_id = p_pricing_phase_id) qptq,
        qp_qualifiers qpq ,
        qp_npreq_line_attrs_tmp qplatq,
        qp_list_headers_b qph,
	qp_price_req_sources_v qprs
where
        qpq.list_header_id = qptq.list_header_id
and     qpq.list_line_id = qptq.list_line_id
and     qpq.qualifier_grouping_no = -1
and     qpq.qualifier_context      = qplatq.context
and     qpq.qualifier_attribute    = qplatq.attribute
and     qpq.comparison_operator_code =  G_OPERATOR_BETWEEN
and     qpq.qualifier_datatype =  G_NUMERIC
and     qpq.search_ind =  2
and     qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number
and     ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
         OR
         qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and    qph.list_type_code not in ('PRL','AGR')
and     qph.active_flag = G_YES
and     qpq.active_flag = G_YES
and     qpq.list_header_id = qph.list_header_id
and     qplatq.line_index > 0
and     qplatq.distinct_qualifier_flag = G_YES
and     qplatq.pricing_status_code = G_STATUS_UNCHANGED
and     qplatq.attribute_type = G_QUALIFIER_TYPE
and    qprs.request_type_code = G_REQUEST_TYPE_CODE
and    qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'))  -- Added for TCA
--and    qptq.pricing_status_code = G_STATUS_UNCHANGED
--and    qptq.pricing_phase_id = p_pricing_phase_id
union all
select /*+ ORDERED USE_NL(qpq qplatq qph) index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N6) index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_outer_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ1' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
        p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag  -- Added for TCA
from
        (select distinct list_header_id,list_line_id,qualifier_grouping_no
         from qp_preq_qual_tmp
         where pricing_status_code = G_STATUS_UNCHANGED
         and   pricing_phase_id = p_pricing_phase_id) qptq,
        qp_qualifiers qpq ,
        qp_npreq_line_attrs_tmp qplatq,
        qp_list_headers_b qph,
	qp_price_req_sources_v qprs
where
        qpq.list_header_id = qptq.list_header_id
and     qpq.list_line_id = qptq.list_line_id
and     qpq.qualifier_grouping_no = qptq.qualifier_grouping_no
and     qpq.qualifier_grouping_no <> -1
and     qpq.qualifier_context      = qplatq.context
and     qpq.qualifier_attribute    = qplatq.attribute
and     qpq.comparison_operator_code = G_OPERATOR_BETWEEN
and     qpq.search_ind =  2
and     qpq.qualifier_group_cnt > 1
and     qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y)
--and     decode(qpq.qualifier_datatype,G_VARCHAR,qplatq.value_from,G_DATE_X,qplatq.value_from,
-- G_DATE_Y,qplatq.value_from,null)
and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to
and     ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
         OR
         qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and     qph.active_flag = G_YES
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and    qph.list_type_code not in ('PRL','AGR')
and      qpq.active_flag = G_YES
and    qplatq.line_index > 0
and      qplatq.distinct_qualifier_flag = G_YES
and    qpq.list_header_id = qph.list_header_id
and      qplatq.pricing_status_code = G_STATUS_UNCHANGED
and      qplatq.attribute_type = G_QUALIFIER_TYPE
and    qprs.request_type_code = G_REQUEST_TYPE_CODE
and    qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'))  -- Added for TCA
--and    qptq.pricing_status_code = G_STATUS_UNCHANGED
--and    qptq.pricing_phase_id = p_pricing_phase_id
union all
select /*+ ORDERED USE_NL(qpq qplh qph)  index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N6) index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_out
er_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ1' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
        p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag    -- Added for TCA
from
        (select distinct list_header_id,list_line_id
         from qp_preq_qual_tmp
         where pricing_status_code = G_STATUS_UNCHANGED
         and   pricing_phase_id = p_pricing_phase_id) qptq,
        qp_qualifiers qpq ,
        qp_npreq_line_attrs_tmp qplatq,
        qp_list_headers_b qph,
	qp_price_req_sources_v qprs
where
        qpq.list_header_id = qptq.list_header_id
and     qpq.list_line_id = qptq.list_line_id
and     qpq.qualifier_grouping_no = -1
and     qpq.qualifier_context      = qplatq.context
and     qpq.qualifier_attribute    = qplatq.attribute
and     qpq.comparison_operator_code = G_OPERATOR_BETWEEN
and     qpq.search_ind =  2
and     qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y)
--and     decode(qpq.qualifier_datatype,G_VARCHAR,qplatq.value_from,G_DATE_X,qplatq.value_from,
-- G_DATE_Y,qplatq.value_from,null)
and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to
and     ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
         OR
         qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and     qph.active_flag = G_YES
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and    qph.list_type_code not in ('PRL','AGR')
and      qpq.active_flag = G_YES
and    qplatq.line_index > 0
and      qplatq.distinct_qualifier_flag = G_YES
and    qpq.list_header_id = qph.list_header_id
and      qplatq.pricing_status_code = G_STATUS_UNCHANGED
and      qplatq.attribute_type = G_QUALIFIER_TYPE
and    qprs.request_type_code = G_REQUEST_TYPE_CODE
and    qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'))  -- Added for TCA
--and    qptq.pricing_status_code = G_STATUS_UNCHANGED
--and    qptq.pricing_phase_id = p_pricing_phase_id
union all
select /*+ ORDERED USE_NL(qpq qplh qph)  index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N7)
       index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_outer_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ1' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
        p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag    -- Added for TCA
from
        (select distinct list_header_id,list_line_id,qualifier_grouping_no
         from qp_preq_qual_tmp
         where pricing_status_code = G_STATUS_UNCHANGED
         and   pricing_phase_id = p_pricing_phase_id) qptq,
        qp_qualifiers qpq ,
        qp_npreq_line_attrs_tmp qplatq,
        qp_list_headers_b qph,
	qp_price_req_sources_v qprs
where
        qpq.list_header_id = qptq.list_header_id
and     qpq.list_line_id = qptq.list_line_id
and     qpq.qualifier_grouping_no = qptq.qualifier_grouping_no
and     qpq.qualifier_grouping_no <> -1
and     qpq.qualifier_context      = qplatq.context
and     qpq.qualifier_attribute    = qplatq.attribute
and     qpq.comparison_operator_code = 'NOT ='
and     qpq.qualifier_attr_value <> qplatq.value_from
and     qpq.search_ind =  2
and     qpq.qualifier_group_cnt > 1
and     ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
         OR
         qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and    qph.list_type_code not in ('PRL','AGR')
and     qph.active_flag = G_YES
and     qpq.active_flag = G_YES
and     qpq.list_header_id = qph.list_header_id
and    qplatq.line_index > 0
and     qplatq.distinct_qualifier_flag = G_YES
and     qplatq.pricing_status_code = G_STATUS_UNCHANGED
and     qplatq.attribute_type = G_QUALIFIER_TYPE
and    qprs.request_type_code = G_REQUEST_TYPE_CODE
and    qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'))  -- Added for TCA
--and    qptq.pricing_status_code = G_STATUS_UNCHANGED
--and    qptq.pricing_phase_id = p_pricing_phase_id
union all
select /*+ ORDERED USE_NL(qpq qplh qph)  index (qplatq,QP_PREQ_LINE_ATTRS_TMP_N7)
       index(qpq qp_qualifiers_n1) index(qph qp_list_headers_b_n7) l_mini_outer_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ1' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
        p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag   -- Added for TCA
from
        (select distinct list_header_id,list_line_id
         from qp_preq_qual_tmp
         where pricing_status_code = G_STATUS_UNCHANGED
         and   pricing_phase_id = p_pricing_phase_id) qptq,
        qp_qualifiers qpq ,
        qp_npreq_line_attrs_tmp qplatq,
        qp_list_headers_b qph,
	qp_price_req_sources_v qprs
where
        qpq.list_header_id = qptq.list_header_id
and     qpq.list_line_id = qptq.list_line_id
and     qpq.qualifier_grouping_no = -1
and     qpq.qualifier_context      = qplatq.context
and     qpq.qualifier_attribute    = qplatq.attribute
and     qpq.comparison_operator_code = 'NOT ='
and     qpq.qualifier_attr_value <> qplatq.value_from
and     qpq.search_ind =  2
and     ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
         OR
         qph.currency_code IS NULL) -- optional currency
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and    qph.list_type_code not in ('PRL','AGR')
and     qph.active_flag = G_YES
and     qpq.active_flag = G_YES
and     qpq.list_header_id = qph.list_header_id
and    qplatq.line_index > 0
and     qplatq.distinct_qualifier_flag = G_YES
and     qplatq.pricing_status_code = G_STATUS_UNCHANGED
and     qplatq.attribute_type = G_QUALIFIER_TYPE
and    qprs.request_type_code = G_REQUEST_TYPE_CODE
and    qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'));  -- Added for TCA
Line: 1498

  G_LIST_HEADER_ID_TBL_Q.delete;
Line: 1499

  G_LIST_LINE_ID_TBL_Q.delete;
Line: 1500

  G_VALIDATED_FLAG_TBL_Q.delete;
Line: 1501

  G_APPLIED_FLAG_TBL_Q.delete;
Line: 1502

  G_ATTRIBUTE_LEVEL_TBL_Q.delete;
Line: 1503

  G_ATTRIBUTE_TYPE_TBL_Q.delete;
Line: 1504

  G_CONTEXT_TBL_Q.delete;
Line: 1505

  G_ATTRIBUTE_TBL_Q.delete;
Line: 1506

  G_VALUE_FROM_TBL_Q.delete;
Line: 1507

  G_GROUPING_NO_TBL_Q.delete;
Line: 1508

  G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
Line: 1509

  G_DATATYPE_TBL_Q.delete;
Line: 1510

  G_SETUP_VALUE_FROM_TBL_Q.delete;
Line: 1511

  G_SETUP_VALUE_TO_TBL_Q.delete;
Line: 1512

  G_PRICING_ATTR_FLAG_TBL_Q.delete;
Line: 1513

  G_OPERATOR_TYPE_TBL_Q.delete;
Line: 1514

  G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 1515

  G_LIST_TYPE_CODE_TBL_Q.delete;
Line: 1516

  G_ASK_FOR_FLAG_TBL_Q.delete;
Line: 1517

  G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
Line: 1518

  G_OTHERS_GROUP_CNT_TBL_Q.delete;
Line: 1519

  G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
Line: 1520

  G_SEARCH_IND_TBL_Q.delete;
Line: 1521

  G_PRICING_STATUS_CODE_TBL_Q.delete;
Line: 1522

  G_START_DATE_ACTIVE_TBL_Q.delete;
Line: 1523

  G_END_DATE_ACTIVE_TBL_Q.delete;
Line: 1524

  G_LINE_INDEX_TBL_Q.delete;
Line: 1525

  G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
Line: 1526

  G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 1527

  G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 1528

  G_LINE_TYPE_CODE_TBL_Q.delete;
Line: 1529

  G_PRICING_PHASE_ID_TBL_Q.delete;
Line: 1530

  G_UNIQUE_KEY_TBL_Q.delete;
Line: 1531

  G_START_DATE_ACTIVE_TBL_H_Q.delete;
Line: 1532

  G_END_DATE_ACTIVE_TBL_H_Q.delete;
Line: 1533

  G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 1534

  G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 1535

  G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
Line: 1536

  G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
Line: 1537

  G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
Line: 1538

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

      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: 1683

select /*+ ORDERED USE_NL(qpq qplh qph)  index(qpq qp_qualifiers_n4) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) l_outer_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
	p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag    -- Added for TCA
from
	   qp_npreq_line_attrs_tmp qplatq,
	   qp_qualifiers qpq ,
	   qp_list_header_phases qplh,
	   qp_list_headers_b qph,
           qp_price_req_sources_v qprs
where
      qpq.list_header_id = qplh.list_header_id
and   qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and   qplh.pricing_phase_id = p_pricing_phase_id
and 	 qpq.qualifier_context      = qplatq.context
and 	 qpq.qualifier_attribute    = qplatq.attribute
and   qpq.qualifier_attr_value = qplatq.value_from
and   qpq.comparison_operator_code = '='
and   qpq.search_ind = 1
and   qpq.list_line_id <> -1
and   ( qpq.list_header_id in (SELECT distinct list_header_id -- for qualified headers from Cache_Header_Qualifiers
                             FROM qp_preq_qual_tmp
                             WHERE pricing_phase_id = p_pricing_phase_id
                             AND   pricing_status_code = G_STATUS_UNCHANGED)
         or
        qpq.header_quals_exist_flag = G_NO) -- Pure line level qualifiers
and   (not exists (select 'x'                                   --3520634 start
                     from qp_pricing_attributes qp_pa           -- if no product defined,select the header
                    where qp_pa.list_line_id = qpq.list_line_id
                      and rownum = 1)
       OR  -- If product defined on line level,select headers for which product matches.
       exists (select  /*+ ORDERED USE_NL(qpprod) */ 'x'
                   FROM   qp_pricing_attributes c, qp_npreq_line_attrs_tmp qpprod
                   WHERE c.list_header_id = qpq.list_header_id
                   AND   c.list_line_id = qpq.list_line_id
                   AND   c.pricing_phase_id = p_pricing_phase_id
                   AND   qpprod.context = c.product_attribute_context
                   AND   qpprod.attribute = c.product_attribute
                   AND   qpprod.value_from = c.product_attr_value
                   AND   qpprod.pricing_status_code = G_STATUS_UNCHANGED
                   AND   c.qualification_ind in (G_YES_PROD_LINE_QUAL_IND, G_YES_PROD_PRIC_LINE_QUAL_IND,
                                                 G_YES_PROD_HDR_LINE_QUAL_IND, G_YES_PRIC_HDR_LINE_QUAL_IND)
                   AND   qpprod.attribute_type = G_PRODUCT_TYPE
                   AND   c.excluder_flag = G_NO
      --3683298             AND   qpprod.line_index = qplatq.line_index
                   AND   rownum = 1)
      )                                                         --3520634 end
and   ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
       OR
       qph.currency_code IS NULL) -- optional currency
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and   qph.list_type_code not in ('PRL','AGR')
and   qpq.list_type_code not in ('PRL','AGR')
and   qph.active_flag = G_YES
and   qpq.active_flag = G_YES
and   qplatq.distinct_qualifier_flag = G_YES
and   qpq.list_header_id = qph.list_header_id
and   qplatq.pricing_status_code = G_STATUS_UNCHANGED
and   qplatq.attribute_type = G_QUALIFIER_TYPE
and   qprs.request_type_code = G_REQUEST_TYPE_CODE
and   qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'))  -- Added for TCA
union all
select /*+ ORDERED USE_NL(qpq qplh qph) index(qpq qp_qualifiers_n6) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) l_outer_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
        p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag    -- Added for TCA
from
	   qp_npreq_line_attrs_tmp qplatq,
	   qp_qualifiers qpq ,
	   qp_list_header_phases qplh,
	   qp_list_headers_b qph,
	   qp_price_req_sources_v qprs
where
      qpq.list_header_id = qplh.list_header_id
and   qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and   qplh.pricing_phase_id = p_pricing_phase_id
and 	 qpq.qualifier_context      = qplatq.context
and 	 qpq.qualifier_attribute    = qplatq.attribute
and   qpq.comparison_operator_code =  G_OPERATOR_BETWEEN
and   qpq.qualifier_datatype =  G_NUMERIC
and   qpq.search_ind = 1
and   qpq.list_line_id <> -1
and   ( qpq.list_header_id in (SELECT distinct list_header_id
                             FROM qp_preq_qual_tmp
                             WHERE pricing_phase_id = p_pricing_phase_id
                             AND   pricing_status_code = G_STATUS_UNCHANGED)
         or
        qpq.header_quals_exist_flag = G_NO)
and   (not exists (select 'x'      --3520634 start
                     from qp_pricing_attributes qp_pa  -- if no product defined,select the header
                    where qp_pa.list_line_id = qpq.list_line_id
                      and rownum = 1)
       OR -- If product defined on line level,select headers for which product matches.
       exists (select  /*+ ORDERED USE_NL(qpprod) */ 'x'
                   FROM   qp_pricing_attributes c, qp_npreq_line_attrs_tmp qpprod
                   WHERE c.list_header_id = qpq.list_header_id
                   AND   c.list_line_id = qpq.list_line_id
                   AND   c.pricing_phase_id = p_pricing_phase_id
                   AND   qpprod.context = c.product_attribute_context
                   AND   qpprod.attribute = c.product_attribute
                   AND   qpprod.value_from = c.product_attr_value
                   AND   qpprod.pricing_status_code = G_STATUS_UNCHANGED
                   AND   c.qualification_ind in (G_YES_PROD_LINE_QUAL_IND, G_YES_PROD_PRIC_LINE_QUAL_IND,
                                                 G_YES_PROD_HDR_LINE_QUAL_IND, G_YES_PRIC_HDR_LINE_QUAL_IND)
                   AND   qpprod.attribute_type = G_PRODUCT_TYPE
                   AND   c.excluder_flag = G_NO
--3683298                   AND   qpprod.line_index = qplatq.line_index
                   AND   rownum = 1)
      )                          --3520634 end
and   qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number
and   ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
       OR
       qph.currency_code IS NULL) -- optional currency
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and   qph.list_type_code not in ('PRL','AGR')
and   qpq.list_type_code not in ('PRL','AGR')
and   qph.active_flag = G_YES
and   qpq.active_flag = G_YES
and   qplatq.distinct_qualifier_flag = G_YES
and   qpq.list_header_id = qph.list_header_id
and   qplatq.pricing_status_code = G_STATUS_UNCHANGED
and   qplatq.attribute_type = G_QUALIFIER_TYPE
and   qprs.request_type_code = G_REQUEST_TYPE_CODE
and   qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'))  -- Added for TCA
union all
select /*+ ORDERED USE_NL(qpq qplh qph) index(qpq qp_qualifiers_n5) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) l_outer_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
        p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag   -- Added for TCA
from
	   qp_npreq_line_attrs_tmp qplatq,
	   qp_qualifiers qpq ,
	   qp_list_header_phases qplh,
	   qp_list_headers_b qph,
	   qp_price_req_sources_v qprs
where
      qpq.list_header_id = qplh.list_header_id
and   qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and   qplh.pricing_phase_id = p_pricing_phase_id
and 	 qpq.qualifier_context      = qplatq.context
and 	 qpq.qualifier_attribute    = qplatq.attribute
and   qpq.comparison_operator_code = G_OPERATOR_BETWEEN
and   qpq.search_ind = 1
and   qpq.list_line_id <> -1
and   ( qpq.list_header_id in (SELECT distinct list_header_id
                             FROM qp_preq_qual_tmp
                             WHERE pricing_phase_id = p_pricing_phase_id
                             AND   pricing_status_code = G_STATUS_UNCHANGED)
         or
        qpq.header_quals_exist_flag = G_NO)
and   (not exists (select 'x'    --3520634 start
                     from qp_pricing_attributes qp_pa    -- if no product defined,select the header
                    where qp_pa.list_line_id = qpq.list_line_id
                      and rownum = 1)
       OR  -- If product defined on line level,select headers for which product matches.
       exists (select  /*+ ORDERED USE_NL(qpprod) */ 'x'
                   FROM   qp_pricing_attributes c, qp_npreq_line_attrs_tmp qpprod
                   WHERE c.list_header_id = qpq.list_header_id
                   AND   c.list_line_id = qpq.list_line_id
                   AND   c.pricing_phase_id = p_pricing_phase_id
                   AND   qpprod.context = c.product_attribute_context
                   AND   qpprod.attribute = c.product_attribute
                   AND   qpprod.value_from = c.product_attr_value
                   AND   qpprod.pricing_status_code = G_STATUS_UNCHANGED
                   AND   c.qualification_ind in (G_YES_PROD_LINE_QUAL_IND, G_YES_PROD_PRIC_LINE_QUAL_IND,
                                                 G_YES_PROD_HDR_LINE_QUAL_IND, G_YES_PRIC_HDR_LINE_QUAL_IND)
                   AND   qpprod.attribute_type = G_PRODUCT_TYPE
                   AND   c.excluder_flag = G_NO
--3683298                   AND   qpprod.line_index = qplatq.line_index
                   AND   rownum = 1)
      )                            --3520634 end
and   qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y)
--and   decode(qpq.qualifier_datatype,G_VARCHAR,qplatq.value_from,G_DATE_X,qplatq.value_from,
-- G_DATE_Y,qplatq.value_from,null)
and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to
and   ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
       OR
       qph.currency_code IS NULL) -- optional currency
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and   qph.list_type_code not in ('PRL','AGR')
and   qpq.list_type_code not in ('PRL','AGR')
and   qph.active_flag = G_YES
and   qpq.active_flag = G_YES
and   qplatq.distinct_qualifier_flag = G_YES
and   qpq.list_header_id = qph.list_header_id
and   qplatq.pricing_status_code = G_STATUS_UNCHANGED
and   qplatq.attribute_type = G_QUALIFIER_TYPE
and   qprs.request_type_code = G_REQUEST_TYPE_CODE
and   qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'))  -- Added for TCA
union all
select /*+ ORDERED USE_NL(qpq qplh qph)  index(qpq qp_qualifiers_n5) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) l_outer_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
        p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag     -- Added for TCA
from
	   qp_npreq_line_attrs_tmp qplatq,
	   qp_qualifiers qpq ,
	   qp_list_header_phases qplh,
	   qp_list_headers_b qph,
	   qp_price_req_sources_v qprs
where
      qpq.list_header_id = qplh.list_header_id
and   qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and   qplh.pricing_phase_id = p_pricing_phase_id
and 	 qpq.qualifier_context      = qplatq.context
and 	 qpq.qualifier_attribute    = qplatq.attribute
and   qpq.comparison_operator_code = 'NOT ='
and   qpq.qualifier_attr_value <> qplatq.value_from
and   qpq.search_ind = 1
and   qpq.list_line_id <> -1
and   ( qpq.list_header_id in (SELECT distinct list_header_id
                             FROM qp_preq_qual_tmp
                             WHERE pricing_phase_id = p_pricing_phase_id
                             AND   pricing_status_code = G_STATUS_UNCHANGED)
         or
        qpq.header_quals_exist_flag = G_NO)
and   (not exists (select 'x'    --3520634 start
                     from qp_pricing_attributes qp_pa            -- if no product defined,select the header
                    where qp_pa.list_line_id = qpq.list_line_id
                      and rownum = 1)
       OR  -- If product defined on line level,select headers for which product matches.
       exists (select  /*+ ORDERED USE_NL(qpprod) */ 'x'
                   FROM   qp_pricing_attributes c, qp_npreq_line_attrs_tmp qpprod
                   WHERE c.list_header_id = qpq.list_header_id
                   AND   c.list_line_id = qpq.list_line_id
                   AND   c.pricing_phase_id = p_pricing_phase_id
                   AND   qpprod.context = c.product_attribute_context
                   AND   qpprod.attribute = c.product_attribute
                   AND   qpprod.value_from = c.product_attr_value
                   AND   qpprod.pricing_status_code = G_STATUS_UNCHANGED
                   AND   c.qualification_ind in (G_YES_PROD_LINE_QUAL_IND, G_YES_PROD_PRIC_LINE_QUAL_IND,
                                                 G_YES_PROD_HDR_LINE_QUAL_IND, G_YES_PRIC_HDR_LINE_QUAL_IND)
                   AND   qpprod.attribute_type = G_PRODUCT_TYPE
                   AND   c.excluder_flag = G_NO
--3683298                   AND   qpprod.line_index = qplatq.line_index
                   AND   rownum = 1)
      )                        --3520634 end
and   ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
       OR
       qph.currency_code IS NULL) -- optional currency
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and   qph.list_type_code not in ('PRL','AGR')
and   qpq.list_type_code not in ('PRL','AGR')
and   qph.active_flag = G_YES
and   qpq.active_flag = G_YES
and   qplatq.distinct_qualifier_flag = G_YES
and   qpq.list_header_id = qph.list_header_id
and   qplatq.pricing_status_code = G_STATUS_UNCHANGED
and   qplatq.attribute_type = G_QUALIFIER_TYPE
and   qprs.request_type_code = G_REQUEST_TYPE_CODE
and   qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'));  -- Added for TCA
Line: 2165

  G_LIST_HEADER_ID_TBL_Q.delete;
Line: 2166

  G_LIST_LINE_ID_TBL_Q.delete;
Line: 2167

  G_VALIDATED_FLAG_TBL_Q.delete;
Line: 2168

  G_APPLIED_FLAG_TBL_Q.delete;
Line: 2169

  G_ATTRIBUTE_LEVEL_TBL_Q.delete;
Line: 2170

  G_ATTRIBUTE_TYPE_TBL_Q.delete;
Line: 2171

  G_CONTEXT_TBL_Q.delete;
Line: 2172

  G_ATTRIBUTE_TBL_Q.delete;
Line: 2173

  G_VALUE_FROM_TBL_Q.delete;
Line: 2174

  G_GROUPING_NO_TBL_Q.delete;
Line: 2175

  G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
Line: 2176

  G_DATATYPE_TBL_Q.delete;
Line: 2177

  G_SETUP_VALUE_FROM_TBL_Q.delete;
Line: 2178

  G_SETUP_VALUE_TO_TBL_Q.delete;
Line: 2179

  G_PRICING_ATTR_FLAG_TBL_Q.delete;
Line: 2180

  G_OPERATOR_TYPE_TBL_Q.delete;
Line: 2181

  G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 2182

  G_LIST_TYPE_CODE_TBL_Q.delete;
Line: 2183

  G_ASK_FOR_FLAG_TBL_Q.delete;
Line: 2184

  G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
Line: 2185

  G_OTHERS_GROUP_CNT_TBL_Q.delete;
Line: 2186

  G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
Line: 2187

  G_SEARCH_IND_TBL_Q.delete;
Line: 2188

  G_PRICING_STATUS_CODE_TBL_Q.delete;
Line: 2189

  G_START_DATE_ACTIVE_TBL_Q.delete;
Line: 2190

  G_END_DATE_ACTIVE_TBL_Q.delete;
Line: 2191

  G_LINE_INDEX_TBL_Q.delete;
Line: 2192

  G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
Line: 2193

  G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 2194

  G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 2195

  G_LINE_TYPE_CODE_TBL_Q.delete;
Line: 2196

  G_PRICING_PHASE_ID_TBL_Q.delete;
Line: 2197

  G_UNIQUE_KEY_TBL_Q.delete;
Line: 2198

  G_START_DATE_ACTIVE_TBL_H_Q.delete;
Line: 2199

  G_END_DATE_ACTIVE_TBL_H_Q.delete;
Line: 2200

  G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 2201

  G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 2202

  G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
Line: 2203

  G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
Line: 2204

  G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
Line: 2205

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

      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: 2312

	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: 2334

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

select /*+ ORDERED USE_NL(qpq qplh qph)  index(qpq qp_qualifiers_n4) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) dynamic_sampling(1) l_header_outer_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
	p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag    -- Added for TCA
from
	   qp_npreq_line_attrs_tmp qplatq,
	   qp_qualifiers qpq ,
	   qp_list_header_phases qplh,
	   qp_list_headers_b qph,
	   qp_price_req_sources_v qprs
where
      qpq.list_header_id = qplh.list_header_id
and   qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and   qplh.pricing_phase_id = p_pricing_phase_id
and 	 qpq.qualifier_context      = qplatq.context
and 	 qpq.qualifier_attribute    = qplatq.attribute
and   qpq.qualifier_attr_value = qplatq.value_from
and   qpq.comparison_operator_code = '='
and   qpq.list_line_id = -1 -- only Header level quals
and   qpq.search_ind = 1
and   ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
       OR
       qph.currency_code IS NULL) -- optional currency
and   ((qph.ask_for_flag = G_YES and
        qph.list_header_id in (SELECT list_header_id
                               FROM qp_npreq_line_attrs_tmp
                               WHERE attribute_type = 'QUALIFIER'
                               AND pricing_status_code = G_STATUS_UNCHANGED
                               AND validated_flag = G_NO
                               AND list_header_id IS NOT NULL))
        OR qph.ask_for_flag = G_NO)
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and   qph.list_type_code not in ('PRL','AGR')
and   qpq.list_type_code not in ('PRL','AGR')
and   qph.active_flag = G_YES
and   qpq.active_flag = G_YES
and   qplatq.distinct_qualifier_flag = G_YES
and   qpq.list_header_id = qph.list_header_id
and   qplatq.pricing_status_code = G_STATUS_UNCHANGED
and   qplatq.attribute_type = G_QUALIFIER_TYPE
and   qprs.request_type_code = G_REQUEST_TYPE_CODE
and   qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'))  -- Added for TCA
union all
select /*+ ORDERED USE_NL(qpq qplh qph) index(qpq qp_qualifiers_n6) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) dynamic_sampling(1) l_header_outer_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
        p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag     -- Added for TCA
from
	   qp_npreq_line_attrs_tmp qplatq,
	   qp_qualifiers qpq ,
	   qp_list_header_phases qplh,
	   qp_list_headers_b qph,
	   qp_price_req_sources_v qprs
where
      qpq.list_header_id = qplh.list_header_id
and   qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and   qplh.pricing_phase_id = p_pricing_phase_id
and 	 qpq.qualifier_context      = qplatq.context
and 	 qpq.qualifier_attribute    = qplatq.attribute
and   qpq.comparison_operator_code =  G_OPERATOR_BETWEEN
and   qpq.qualifier_datatype =  G_NUMERIC
and   qpq.search_ind = 1
and   qpq.list_line_id = -1 -- Header level quals
and   qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number
and   ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
       OR
       qph.currency_code IS NULL) -- optional currency
and   ((qph.ask_for_flag = G_YES and
        qph.list_header_id in (SELECT list_header_id
                               FROM qp_npreq_line_attrs_tmp
                               WHERE attribute_type = 'QUALIFIER'
                               AND pricing_status_code = G_STATUS_UNCHANGED
                               AND validated_flag = G_NO
                               AND list_header_id IS NOT NULL))
        OR qph.ask_for_flag = G_NO)
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and   qph.list_type_code not in ('PRL','AGR')
and   qpq.list_type_code not in ('PRL','AGR')
and   qph.active_flag = G_YES
and   qpq.active_flag = G_YES
and   qplatq.distinct_qualifier_flag = G_YES
and   qpq.list_header_id = qph.list_header_id
and   qplatq.pricing_status_code = G_STATUS_UNCHANGED
and   qplatq.attribute_type = G_QUALIFIER_TYPE
and   qprs.request_type_code = G_REQUEST_TYPE_CODE
and   qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'))  -- Added for TCA
union all
select /*+ ORDERED USE_NL(qpq qplh qph) index(qpq qp_qualifiers_n5) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) dynamic_sampling(1) l_header_outer_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
        p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag      -- Added for TCA

from
	   qp_npreq_line_attrs_tmp qplatq,
	   qp_qualifiers qpq ,
	   qp_list_header_phases qplh,
	   qp_list_headers_b qph,
	   qp_price_req_sources_v qprs
where
      qpq.list_header_id = qplh.list_header_id
and   qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and   qplh.pricing_phase_id = p_pricing_phase_id
and 	 qpq.qualifier_context      = qplatq.context
and 	 qpq.qualifier_attribute    = qplatq.attribute
and   qpq.comparison_operator_code = G_OPERATOR_BETWEEN
and   qpq.search_ind = 1
and   qpq.list_line_id = -1 -- Header level quals
and   qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y)
--and   decode(qpq.qualifier_datatype,G_VARCHAR,qplatq.value_from,G_DATE_X,qplatq.value_from,
-- G_DATE_Y,qplatq.value_from,null)
and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to
and   ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
       OR
       qph.currency_code IS NULL) -- optional currency
and   ((qph.ask_for_flag = G_YES and
        qph.list_header_id in (SELECT list_header_id
                               FROM qp_npreq_line_attrs_tmp
                               WHERE attribute_type = 'QUALIFIER'
                               AND pricing_status_code = G_STATUS_UNCHANGED
                               AND validated_flag = G_NO
                               AND list_header_id IS NOT NULL))
        OR qph.ask_for_flag = G_NO)
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and   qph.list_type_code not in ('PRL','AGR')
and   qpq.list_type_code not in ('PRL','AGR')
and   qph.active_flag = G_YES
and   qpq.active_flag = G_YES
and   qplatq.distinct_qualifier_flag = G_YES
and   qpq.list_header_id = qph.list_header_id
and   qplatq.pricing_status_code = G_STATUS_UNCHANGED
and   qplatq.attribute_type = G_QUALIFIER_TYPE
and   qprs.request_type_code = G_REQUEST_TYPE_CODE
and   qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'))  -- Added for TCA
union all
select /*+ ORDERED USE_NL(qpq qplh qph)  index(qpq qp_qualifiers_n5) index(qph qp_list_headers_b_n7) index(qplatq qp_preq_line_attrs_tmp_n2) dynamic_sampling(1) l_header_outer_qual_cur_mod */
       qpq.list_header_id,
       qpq.list_line_id list_line_id,
       qpq.qualifier_group_cnt,
       qpq.others_group_cnt,
       qpq.header_quals_exist_flag,
       qpq.search_ind,
       G_NO validated_flag,
       G_NO applied_flag,
       G_LINE_LEVEL attribute_level,
       G_QUALIFIER_TYPE attribute_type,
       qplatq.context          ,
       qplatq.attribute        ,
       qplatq.value_from       ,
       qpq.qualifier_grouping_no qualifier_grouping_no ,
       qpq.qualifier_precedence  ,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value    ,
       qpq.qualifier_attr_value_to ,
       qpq.start_date_active,
       qpq.end_date_active,
       G_NO pricing_attr_flag,
       qpq.comparison_operator_code ,
       qph.list_type_code,
       qph.ask_for_flag,
       qplatq.pricing_status_code,
       'OHQ' ,
        NULL line_index,
        NULL pricing_effective_date,
        qph.start_date_active_first start_date_active_first,
        qph.end_date_active_first   end_date_active_first,
        NULL line_type_code,
        p_pricing_phase_id pricing_phase_id,
        qpq.LIST_HEADER_ID || '-' || qpq.LIST_LINE_ID || '-' || qpq.QUALIFIER_GROUPING_NO UNIQUE_KEY,
        qph.start_date_active start_date_active_h,
        qph.end_date_active end_date_active_h,
        qph.start_date_active_second start_date_active_second,
        qph.end_date_active_second end_date_active_second,
        qph.active_date_first_type,
        qph.active_date_second_type,
        qph.limit_exists_flag,
        qplatq.derived_qualifier_flag    -- Added for TCA

from
	   qp_npreq_line_attrs_tmp qplatq,
	   qp_qualifiers qpq ,
	   qp_list_header_phases qplh,
	   qp_list_headers_b qph,
	   qp_price_req_sources_v qprs
where
      qpq.list_header_id = qplh.list_header_id
and   qplh.list_header_id = qph.list_header_id
-- bug 2799120
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and   qplh.pricing_phase_id = p_pricing_phase_id
and 	 qpq.qualifier_context      = qplatq.context
and 	 qpq.qualifier_attribute    = qplatq.attribute
and   qpq.comparison_operator_code = 'NOT ='
and   qpq.qualifier_attr_value <> qplatq.value_from
and   qpq.search_ind = 1
and   qpq.list_line_id = -1 -- Header Level Quals
and   ((qph.currency_code IS NOT NULL AND qph.currency_code = G_CURRENCY_CODE)
       OR
       qph.currency_code IS NULL) -- optional currency
and   ((qph.ask_for_flag = G_YES and
        qph.list_header_id in (SELECT list_header_id
                               FROM qp_npreq_line_attrs_tmp
                               WHERE attribute_type = 'QUALIFIER'
                               AND pricing_status_code = G_STATUS_UNCHANGED
                               AND validated_flag = G_NO
                               AND list_header_id IS NOT NULL))
        OR qph.ask_for_flag = G_NO)
and    ((G_MIN_PRICING_DATE between nvl(qph.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qph.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qph.end_date_active,G_MAX_PRICING_DATE)))
and    ((G_MIN_PRICING_DATE between nvl(qpq.start_date_active , G_MIN_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MIN_PRICING_DATE)
or      G_MAX_PRICING_DATE between nvl(qpq.start_date_active , G_MAX_PRICING_DATE)
                                         and nvl(qpq.end_date_active,G_MAX_PRICING_DATE)))
and   qph.list_type_code not in ('PRL','AGR')
and   qpq.list_type_code not in ('PRL','AGR')
and   qph.active_flag = G_YES
and   qpq.active_flag = G_YES
and   qplatq.distinct_qualifier_flag = G_YES
and   qpq.list_header_id = qph.list_header_id
and   qplatq.pricing_status_code = G_STATUS_UNCHANGED
and   qplatq.attribute_type = G_QUALIFIER_TYPE
and   qprs.request_type_code = G_REQUEST_TYPE_CODE
and   qph.source_system_code = qprs.source_system_code
and    ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') = 'N')
         OR (qplatq.DERIVED_QUALIFIER_FLAG = 'Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y'));  -- Added for TCA
Line: 2783

  G_LIST_HEADER_ID_TBL_Q.delete;
Line: 2784

  G_LIST_LINE_ID_TBL_Q.delete;
Line: 2785

  G_VALIDATED_FLAG_TBL_Q.delete;
Line: 2786

  G_APPLIED_FLAG_TBL_Q.delete;
Line: 2787

  G_ATTRIBUTE_LEVEL_TBL_Q.delete;
Line: 2788

  G_ATTRIBUTE_TYPE_TBL_Q.delete;
Line: 2789

  G_CONTEXT_TBL_Q.delete;
Line: 2790

  G_ATTRIBUTE_TBL_Q.delete;
Line: 2791

  G_VALUE_FROM_TBL_Q.delete;
Line: 2792

  G_GROUPING_NO_TBL_Q.delete;
Line: 2793

  G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
Line: 2794

  G_DATATYPE_TBL_Q.delete;
Line: 2795

  G_SETUP_VALUE_FROM_TBL_Q.delete;
Line: 2796

  G_SETUP_VALUE_TO_TBL_Q.delete;
Line: 2797

  G_PRICING_ATTR_FLAG_TBL_Q.delete;
Line: 2798

  G_OPERATOR_TYPE_TBL_Q.delete;
Line: 2799

  G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 2800

  G_LIST_TYPE_CODE_TBL_Q.delete;
Line: 2801

  G_ASK_FOR_FLAG_TBL_Q.delete;
Line: 2802

  G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
Line: 2803

  G_OTHERS_GROUP_CNT_TBL_Q.delete;
Line: 2804

  G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
Line: 2805

  G_SEARCH_IND_TBL_Q.delete;
Line: 2806

  G_PRICING_STATUS_CODE_TBL_Q.delete;
Line: 2807

  G_START_DATE_ACTIVE_TBL_Q.delete;
Line: 2808

  G_END_DATE_ACTIVE_TBL_Q.delete;
Line: 2809

  G_LINE_INDEX_TBL_Q.delete;
Line: 2810

  G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
Line: 2811

  G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 2812

  G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 2813

  G_LINE_TYPE_CODE_TBL_Q.delete;
Line: 2814

  G_PRICING_PHASE_ID_TBL_Q.delete;
Line: 2815

  G_UNIQUE_KEY_TBL_Q.delete;
Line: 2816

  G_START_DATE_ACTIVE_TBL_H_Q.delete;
Line: 2817

  G_END_DATE_ACTIVE_TBL_H_Q.delete;
Line: 2818

  G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 2819

  G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 2820

  G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
Line: 2821

  G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
Line: 2822

  G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
Line: 2823

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

      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: 2942

 G_LINE_INDEX_tbl.delete;
Line: 2943

 G_USAGE_PRICING_TYPE_TBL.delete;
Line: 2944

 G_LINE_CATEGORY_TBL.delete;
Line: 2945

 G_LINE_CATEGORY_DEF_TBL.delete;
Line: 2946

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

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

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

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

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

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

 G_CHARGE_PERIODICITY_CODE_TBL.delete;
Line: 2953

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

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

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

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

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

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

 G_LINE_DETAIL_INDEX_tbl.delete;
Line: 2961

 G_ATTRIBUTE_LEVEL_tbl.delete;
Line: 2962

 G_ATTRIBUTE_TYPE_tbl.delete;
Line: 2963

 G_LIST_HEADER_ID_tbl.delete;
Line: 2964

 G_LIST_LINE_ID_tbl.delete;
Line: 2965

 G_CONTEXT_tbl.delete;
Line: 2966

 G_ATTRIBUTE_tbl.delete;
Line: 2967

 G_VALUE_FROM_tbl.delete;
Line: 2968

 G_SETUP_VALUE_FROM_tbl.delete;
Line: 2969

 G_VALUE_TO_tbl.delete;
Line: 2970

 G_SETUP_VALUE_TO_tbl.delete;
Line: 2971

 G_GROUPING_NUMBER_tbl.delete;
Line: 2972

 G_NO_QUALIFIERS_IN_GRP_tbl.delete;
Line: 2973

 G_COMPARISON_OPERATOR_TYPE_tbl.delete;
Line: 2974

 G_VALIDATED_FLAG_tbl.delete;
Line: 2975

 G_APPLIED_FLAG_tbl.delete;
Line: 2976

 G_PRICING_STATUS_CODE_tbl.delete;
Line: 2977

 G_PRICING_STATUS_TEXT_tbl.delete;
Line: 2978

 G_QUALIFIER_PRECEDENCE_tbl.delete;
Line: 2979

 G_DATATYPE_tbl.delete;
Line: 2980

 G_PRICING_ATTR_FLAG_tbl.delete;
Line: 2981

 G_QUALIFIER_TYPE_tbl.delete;
Line: 2982

 G_product_uom_code_tbl.delete;
Line: 2984

 G_ROUNDING_FLAG_TBL.delete;
Line: 2985

 G_LINE_TYPE_CODE_TBL.delete          ;
Line: 2986

 G_PRICING_EFFECTIVE_DATE_TBL.delete  ;
Line: 2987

 G_ACTIVE_DATE_FIRST_TBL.delete       ;
Line: 2988

 G_ACTIVE_DATE_FIRST_TYPE_TBL.delete  ;
Line: 2989

 G_ACTIVE_DATE_SECOND_TBL.delete      ;
Line: 2990

 G_ACTIVE_DATE_SECOND_TYPE_TBL.delete ;
Line: 2991

 G_LINE_QUANTITY_TBL.delete           ;
Line: 2992

 G_LINE_UOM_CODE_TBL.delete           ;
Line: 2993

 G_REQUEST_TYPE_CODE_TBL.delete       ;
Line: 2994

 G_PRICED_QUANTITY_TBL.delete         ;
Line: 2995

 G_UOM_QUANTITY_TBL.delete         ;
Line: 2996

 G_PRICED_UOM_CODE_TBL.delete         ;
Line: 2997

 G_CURRENCY_CODE_TBL.delete           ;
Line: 2998

 G_UNIT_PRICE_TBL.delete              ;
Line: 2999

 G_PERCENT_PRICE_TBL.delete           ;
Line: 3000

 G_ADJUSTED_UNIT_PRICE_TBL.delete     ;
Line: 3001

 G_UPD_ADJUSTED_UNIT_PRICE_TBL.delete;
Line: 3002

 G_PROCESSED_FLAG_TBL.delete          ;
Line: 3003

 G_PRICE_FLAG_TBL.delete              ;
Line: 3004

 G_LINE_ID_TBL.delete                 ;
Line: 3005

 G_PROCESSING_ORDER_TBL.delete        ;
Line: 3006

 G_EXCLUDER_FLAG_TBL.delete               ;
Line: 3007

 G_PRICE_REQUEST_CODE_TBL.delete;
Line: 3008

 G_HEADER_LIMIT_EXISTS_TBL.delete;
Line: 3009

 G_LINE_LIMIT_EXISTS_TBL.delete;
Line: 3010

 G_CHARGE_TYPE_CODE_TBL.delete;
Line: 3011

 G_CHARGE_SUBTYPE_CODE_TBL.delete;
Line: 3012

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

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

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

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

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

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

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

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

 G_UPDATED_FLAG_TBL.delete;       -- 3215497
Line: 3021

 G_CALCULATION_CODE_TBL.delete;   -- 3215497
Line: 3022

 G_CHANGE_REASON_CODE_TBL.delete; -- 3215497
Line: 3023

 G_CHANGE_REASON_TEXT_TBL.delete; -- 3215497
Line: 3024

 G_PROCESS_CODE_TBL.delete;       -- 3215497
Line: 3025

  G_LINE_DETAIL_TYPE_CODE_TBL.delete        ;
Line: 3026

  G_PRICE_BREAK_TYPE_CODE_TBL.delete        ;
Line: 3027

  G_LIST_PRICE_TBL.delete                   ;
Line: 3028

  G_LIST_LINE_TYPE_TBL.delete               ;
Line: 3029

  G_LIST_TYPE_CODE_TBL.delete               ;
Line: 3030

  G_CREATED_FROM_SQL_TBL.delete             ;
Line: 3031

  G_PRICING_GROUP_SEQUENCE_TBL.delete       ;
Line: 3032

  G_PRICING_PHASE_ID_TBL.delete             ;
Line: 3033

  G_OPERAND_CALCULATION_CODE_TBL.delete     ;
Line: 3034

  G_OPERAND_VALUE_TBL.delete                ;
Line: 3035

  G_SUBSTITUTION_TYPE_CODE_TBL.delete       ;
Line: 3036

  G_SUBSTITUTION_VALUE_FROM_TBL.delete      ;
Line: 3037

  G_SUBSTITUTION_VALUE_TO_TBL.delete        ;
Line: 3038

  G_ASK_FOR_FLAG_TBL.delete                 ;
Line: 3039

  G_PRICE_FORMULA_ID_TBL.delete             ;
Line: 3040

  G_PRODUCT_PRECEDENCE_TBL.delete           ;
Line: 3041

  G_INCOMP_GRP_CODE_TBL.delete              ;
Line: 3042

  G_AUTOMATIC_FLAG_TBL.delete               ;
Line: 3043

  G_OVERRIDE_FLAG_TBL.delete                ;
Line: 3044

  G_PRIMARY_UOM_FLAG_TBL.delete             ;
Line: 3045

  G_PRINT_ON_INVOICE_FLAG_TBL.delete        ;
Line: 3046

  G_MODIFIER_LEVEL_CODE_TBL.delete          ;
Line: 3047

  G_BENEFIT_QTY_TBL.delete                  ;
Line: 3048

  G_BENEFIT_UOM_CODE_TBL.delete             ;
Line: 3049

  G_LIST_LINE_NO_TBL.delete                 ;
Line: 3050

  G_ACCRUAL_FLAG_TBL.delete                 ;
Line: 3051

  G_ACCRUAL_CONVERSION_RATE_TBL.delete      ;
Line: 3052

  G_ESTIM_ACCRUAL_RATE_TBL.delete           ;
Line: 3053

  G_RECURRING_FLAG_TBL.delete               ;
Line: 3054

  G_QUALIFIERS_EXIST_FLAG_TBL.delete;
Line: 3055

  G_PRICING_ATTRS_EXIST_FLAG_TBL.delete;
Line: 3056

  G_SELECTED_VOLUME_ATTR_TBL.delete         ;
Line: 3057

  G_ROUNDING_FACTOR_TBL.delete              ;
Line: 3058

  G_LINE_INDEX_LD_TBL.delete                ;
Line: 3059

  G_LINE_DETAIL_INDEX_LD_TBL.delete         ;
Line: 3060

  G_LIST_HEADER_ID_LD_TBL.delete            ;
Line: 3061

  G_LIST_LINE_ID_LD_TBL.delete              ;
Line: 3062

  G_PRICING_STATUS_CODE_LD_TBL.delete       ;
Line: 3063

  G_PRICING_STATUS_TEXT_LD_TBL.delete       ;
Line: 3064

  G_APPLIED_FLAG_LD_TBL.delete;
Line: 3065

  G_PROCESSED_FLAG_LD_TBL.delete;
Line: 3066

  G_LINE_INDEX_l_TBL.delete;
Line: 3067

  G_LINE_DETAIL_INDEX_l_TBL.delete;
Line: 3068

  G_PRICING_STATUS_CODE_L_TBL.delete;
Line: 3069

  G_PRICING_STATUS_TEXT_L_TBL.delete;
Line: 3071

  G_LIST_HEADER_ID_TBL_Q.delete;
Line: 3072

  G_LIST_LINE_ID_TBL_Q.delete;
Line: 3073

  G_LINE_INDEX_TBL_Q.delete;
Line: 3074

  G_VALIDATED_FLAG_TBL_Q.delete;
Line: 3075

  G_APPLIED_FLAG_TBL_Q.delete;
Line: 3076

  G_START_DATE_ACTIVE_TBL_Q.delete;
Line: 3077

  G_END_DATE_ACTIVE_TBL_Q.delete;
Line: 3078

  G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
Line: 3079

  G_LINE_TYPE_CODE_TBL_Q.delete;
Line: 3080

  G_ATTRIBUTE_LEVEL_TBL_Q.delete;
Line: 3081

  G_ATTRIBUTE_TYPE_TBL_Q.delete;
Line: 3082

  G_CONTEXT_TBL_Q.delete;
Line: 3083

  G_ATTRIBUTE_TBL_Q.delete;
Line: 3084

  G_VALUE_FROM_TBL_Q.delete;
Line: 3085

  G_GROUPING_NO_TBL_Q.delete;
Line: 3086

  G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
Line: 3087

  G_DATATYPE_TBL_Q.delete;
Line: 3088

  G_SETUP_VALUE_FROM_TBL_Q.delete;
Line: 3089

  G_SETUP_VALUE_TO_TBL_Q.delete;
Line: 3090

  G_PRICING_ATTR_FLAG_TBL_Q.delete;
Line: 3091

  G_OPERATOR_TYPE_TBL_Q.delete;
Line: 3092

  G_CURRENCY_CODE_TBL_Q.delete;
Line: 3093

  G_ASK_FOR_FLAG_TBL_Q.delete;
Line: 3094

  G_LIST_TYPE_CODE_TBL_Q.delete;
Line: 3095

  G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 3096

  G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
Line: 3097

  G_OTHERS_GROUP_CNT_TBL_Q.delete;
Line: 3098

  G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
Line: 3099

  G_SEARCH_IND_TBL_Q.delete;
Line: 3100

  G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
Line: 3101

  G_LIST_LINE_NO_TBL_Q.delete;
Line: 3103

  G_LINE_INDEX_TBL_P.delete;
Line: 3104

  G_LINE_DETAIL_INDEX_TBL_P.delete;
Line: 3105

  G_LIST_HEADER_ID_TBL_P.delete;
Line: 3106

  G_LIST_LINE_ID_TBL_P.delete;
Line: 3107

  G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
Line: 3108

  G_LIST_PRICE_TBL_P.delete;
Line: 3109

  G_LIST_LINE_TYPE_TBL_P.delete;
Line: 3110

  G_LIST_TYPE_CODE_TBL_P.delete;
Line: 3111

  G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
Line: 3112

  G_PRICING_PHASE_ID_TBL_P.delete;
Line: 3113

  G_OPER_CALCULATION_CODE_TBL_P.delete;
Line: 3114

  G_OPERAND_VALUE_TBL_P.delete;
Line: 3115

  G_ASK_FOR_FLAG_TBL_P.delete;
Line: 3116

  G_PRICE_FORMULA_ID_TBL_P.delete;
Line: 3117

  G_PRODUCT_PRECEDENCE_TBL_P.delete;
Line: 3118

  G_INCOMP_GRP_CODE_TBL_P.delete;
Line: 3119

  G_AUTOMATIC_FLAG_TBL_P.delete;
Line: 3120

  G_OVERRIDE_FLAG_TBL_P.delete;
Line: 3121

  G_PRIMARY_UOM_FLAG_TBL_P.delete;
Line: 3122

  G_PRINT_ON_INVOICE_FLAG_TBL_P.delete;
Line: 3123

  G_MODIFIER_LEVEL_CODE_TBL_P.delete;
Line: 3124

  G_BENEFIT_QTY_TBL_P.delete;
Line: 3125

  G_BENEFIT_UOM_CODE_TBL_P.delete;
Line: 3126

  G_LIST_LINE_NO_TBL_P.delete;
Line: 3127

  G_ACCRUAL_FLAG_TBL_P.delete;
Line: 3128

  G_ACCR_CONVERSION_RATE_TBL_P.delete;
Line: 3129

  G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
Line: 3130

  G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 3131

  G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 3132

  G_CONTEXT_TBL_P.delete;
Line: 3133

  G_ATTRIBUTE_TBL_P.delete;
Line: 3134

  G_VALUE_FROM_TBL_P.delete;
Line: 3135

  G_SETUP_VALUE_FROM_TBL_P.delete;
Line: 3136

  G_VALIDATED_FLAG_TBL_P.delete;
Line: 3137

  G_APPLIED_FLAG_TBL_P.delete;
Line: 3138

  G_PRICING_ATTR_FLAG_TBL_P.delete;
Line: 3139

  G_GROUPING_NUMBER_TBL_P.delete;
Line: 3140

  G_QUALIFIER_PRECEDENCE_TBL_P.delete;
Line: 3141

  G_EXCLUDER_FLAG_TBL_P.delete;
Line: 3142

  G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 3143

  G_QUALIFIER_TYPE_TBL_P.delete;
Line: 3144

  G_ROUNDING_FACTOR_TBL_P.delete;
Line: 3145

  G_HEADER_LIMIT_EXISTS_TBL_P.delete;
Line: 3146

  G_LINE_LIMIT_EXISTS_TBL_P.delete;
Line: 3147

  G_CHARGE_TYPE_CODE_TBL_P.delete;
Line: 3148

  G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
Line: 3149

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

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

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

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

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

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

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

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

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

  G_ATTRIBUTE_LEVEL_TBL_PR.delete;
Line: 3160

  G_ATTRIBUTE_TYPE_TBL_PR.delete;
Line: 3161

  G_CONTEXT_TBL_PR.delete;
Line: 3162

  G_ATTRIBUTE_TBL_PR.delete;
Line: 3163

  G_VALUE_FROM_TBL_PR.delete;
Line: 3164

  G_OPERATOR_TYPE_TBL_PR.delete;
Line: 3165

  G_SETUP_VALUE_FROM_TBL_PR.delete;
Line: 3166

  G_SETUP_VALUE_TO_TBL_PR.delete;
Line: 3167

  G_DATATYPE_TBL_PR.delete;
Line: 3169

  G_LINE_INDEX_TBL_B.delete;
Line: 3170

  G_LIST_HEADER_ID_TBL_B.delete;
Line: 3171

  G_LIST_LINE_ID_TBL_B.delete;
Line: 3172

  G_PRICE_BREAK_TYPE_CODE_TBL_B.delete;
Line: 3173

  G_LIST_PRICE_TBL_B.delete;
Line: 3174

  G_LIST_LINE_TYPE_TBL_B.delete;
Line: 3175

  G_LIST_TYPE_CODE_TBL_B.delete;
Line: 3176

  G_PRICING_GROUP_SEQUENCE_TBL_B.delete;
Line: 3177

  G_PRICING_PHASE_ID_TBL_B.delete;
Line: 3178

  G_OPER_CALCULATION_CODE_TBL_B.delete;
Line: 3179

  G_OPERAND_VALUE_TBL_B.delete;
Line: 3180

  G_ASK_FOR_FLAG_TBL_B.delete;
Line: 3181

  G_PRICE_FORMULA_ID_TBL_B.delete;
Line: 3182

  G_PRODUCT_PRECEDENCE_TBL_B.delete;
Line: 3183

  G_INCOMP_GRP_CODE_TBL_B.delete;
Line: 3184

  G_AUTOMATIC_FLAG_TBL_B.delete;
Line: 3185

  G_OVERRIDE_FLAG_TBL_B.delete;
Line: 3186

  G_PRIMARY_UOM_FLAG_TBL_B.delete;
Line: 3187

  G_PRINT_ON_INVOICE_FLAG_TBL_B.delete;
Line: 3188

  G_MODIFIER_LEVEL_CODE_TBL_B.delete;
Line: 3189

  G_BENEFIT_QTY_TBL_B.delete;
Line: 3190

  G_BENEFIT_UOM_CODE_TBL_B.delete;
Line: 3191

  G_LIST_LINE_NO_TBL_B.delete;
Line: 3192

  G_ACCRUAL_FLAG_TBL_B.delete;
Line: 3193

  G_ACCR_CONVERSION_RATE_TBL_B.delete;
Line: 3194

  G_ESTIM_ACCRUAL_RATE_TBL_B.delete;
Line: 3195

  G_LINE_INDEX_TBL_G.delete;
Line: 3196

  G_LIST_HEADER_ID_TBL_G.delete;
Line: 3197

  G_LIST_LINE_ID_TBL_G.delete;
Line: 3198

  G_NO_OF_PATTS_IN_GRP_TBL_G.delete;
Line: 3200

  G_PRICING_PHASE_ID_TBL_A.delete;
Line: 3201

  G_INCOMP_GRP_CODE_TBL_A.delete;
Line: 3202

  G_LINE_DETAIL_TYPE_CODE_TBL_A.delete;
Line: 3203

  G_MODIFIER_LEVEL_CODE_TBL_A.delete;
Line: 3204

  G_PRIMARY_UOM_FLAG_TBL_A.delete;
Line: 3216

  |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: 3241

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

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: 3262

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

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: 3282

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: 3335

   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: 3344

      UPDATE qp_npreq_ldets_tmp     --upd2
        SET PRICING_STATUS_CODE = p_status_code,
            PRICING_STATUS_TEXT =
                  substr(pricing_status_code||'+'||p_status_code||'+'||p_status_text,1,2000)
        WHERE LINE_INDEX = p_line_index
	   AND   PRICING_STATUS_CODE <> G_STATUS_UNCHANGED;
Line: 3359

        UPDATE /*+ dynamic_sampling(1) */ qp_npreq_line_attrs_tmp     --upd3
        SET PRICING_STATUS_CODE = p_status_code,
            PRICING_STATUS_TEXT = substr(p_status_text,1,240)
        WHERE LINE_INDEX = p_line_index
        AND   PRICING_STATUS_CODE <> G_STATUS_UNCHANGED;
Line: 3393

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

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

  |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: 3455

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

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

END DELETE_LINES;
Line: 3495

  |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: 3512

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

 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: 3539

 /*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: 3572

  |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: 3609

 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: 3631

  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: 3658

  | 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: 3693

 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: 3754

  | 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: 3796

 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: 3865

  | 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: 3903

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

 /*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: 3973

 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: 4054

  | 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: 4112

 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: 4180

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: 4227

  |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: 4263

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: 4328

  |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: 4367

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

/*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: 4439

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: 4521

  |Procedure Group INSERT_LINES2
  +----------------------------------------------------------------------
*/

PROCEDURE INSERT_LINES2
                (p_LINE_INDEX              IN NUMBER_TYPE,
                 p_LINE_TYPE_CODE          IN VARCHAR_TYPE,
                 p_PRICING_EFFECTIVE_DATE  IN DATE_TYPE   ,
                 p_ACTIVE_DATE_FIRST       IN DATE_TYPE   ,
                 p_ACTIVE_DATE_FIRST_TYPE  IN VARCHAR_TYPE,
                 p_ACTIVE_DATE_SECOND      IN DATE_TYPE   ,
                 p_ACTIVE_DATE_SECOND_TYPE IN VARCHAR_TYPE ,
                 p_LINE_QUANTITY           IN NUMBER_TYPE ,
                 p_LINE_UOM_CODE           IN VARCHAR_TYPE,
                 p_REQUEST_TYPE_CODE       IN VARCHAR_TYPE,
                 p_PRICED_QUANTITY         IN NUMBER_TYPE,
                 p_PRICED_UOM_CODE         IN VARCHAR_TYPE,
                 p_CURRENCY_CODE           IN VARCHAR_TYPE,
                 p_UNIT_PRICE              IN NUMBER_TYPE,
                 p_ADJUSTED_UNIT_PRICE     IN NUMBER_TYPE,
                 p_UPD_ADJUSTED_UNIT_PRICE IN NUMBER_TYPE,
                 p_UOM_QUANTITY            IN NUMBER_TYPE,
                 p_PRICE_FLAG             IN VARCHAR_TYPE,
                 p_LINE_ID                IN NUMBER_TYPE,
                 p_ROUNDING_FACTOR        IN PLS_INTEGER_TYPE,
                 p_PRICE_LIST_ID          IN NUMBER_TYPE,
                 p_PRICE_REQUEST_CODE     IN VARCHAR_TYPE,
		 p_USAGE_PRICING_TYPE     IN VARCHAR_TYPE,
                 p_LINE_CATEGORY          IN VARCHAR_TYPE,
                 p_CONTRACT_START_DATE	  IN DATE_TYPE,
                 p_CONTRACT_END_DATE	  IN DATE_TYPE,
		 p_CATCHWEIGHT_QTY	  IN NUMBER_TYPE,
		 p_ACTUAL_ORDER_QTY	  IN NUMBER_TYPE,
		 p_LIST_PRICE_OVERRIDE_FLAG IN VARCHAR_TYPE,
                 p_charge_periodicity_code  IN VARCHAR_3_TYPE,
                 x_status_code            OUT NOCOPY VARCHAR2,
                 x_status_text            OUT NOCOPY VARCHAR2 )
AS
 l_routine VARCHAR2(240):='Routine:QP_PREQ_GRP.INSERT_LINES2';
Line: 4578

INSERT INTO qp_npreq_lines_tmp
                (LINE_INDEX,
                 LINE_TYPE_CODE,
                 PRICING_EFFECTIVE_DATE,
                 START_DATE_ACTIVE_FIRST,
                 ACTIVE_DATE_FIRST_TYPE,
                 START_DATE_ACTIVE_SECOND,
                 ACTIVE_DATE_SECOND_TYPE,
                 LINE_QUANTITY,
                 LINE_UOM_CODE,
                 REQUEST_TYPE_CODE,
                 PRICED_QUANTITY,
                 PRICED_UOM_CODE,
                 CURRENCY_CODE,
                 UNIT_PRICE,
                 ADJUSTED_UNIT_PRICE,
                 PRICE_FLAG,
                 UOM_QUANTITY,
                 LINE_ID,
                 ROUNDING_FACTOR,
                 UPDATED_ADJUSTED_UNIT_PRICE,
                 PRICE_LIST_HEADER_ID,
                 PRICE_REQUEST_CODE,
                 USAGE_PRICING_TYPE,
                 LINE_CATEGORY,
                 CONTRACT_START_DATE,
                 CONTRACT_END_DATE,
		 CATCHWEIGHT_QTY,
                 ACTUAL_ORDER_QUANTITY,
		 LIST_PRICE_OVERRIDE_FLAG, --po integration
                 CHARGE_PERIODICITY_CODE,
		 ORDER_UOM_SELLING_PRICE
		 )
VALUES (         p_LINE_INDEX(i),
                 p_LINE_TYPE_CODE(i),
                 p_PRICING_EFFECTIVE_DATE(i),
                 p_ACTIVE_DATE_FIRST(i),
                 p_ACTIVE_DATE_FIRST_TYPE(i),
                 p_ACTIVE_DATE_SECOND(i),
                 p_ACTIVE_DATE_SECOND_TYPE(i),
                 p_LINE_QUANTITY(i),
                 p_LINE_UOM_CODE(i),
                 p_REQUEST_TYPE_CODE(i),
                 p_PRICED_QUANTITY(i),
                 p_PRICED_UOM_CODE (i),
                 p_CURRENCY_CODE(i),
                 p_UNIT_PRICE (i),
                 p_ADJUSTED_UNIT_PRICE(i),
                 p_PRICE_FLAG(i),
                 p_UOM_QUANTITY(i),
                 p_LINE_ID(i),
                 P_ROUNDING_FACTOR(i),
                 p_UPD_ADJUSTED_UNIT_PRICE(i),
                 nvl(p_PRICE_LIST_ID(i),-9999),
                 p_PRICE_REQUEST_CODE(i),
                 nvl(p_USAGE_PRICING_TYPE(i),'REGULAR'),
                 p_LINE_CATEGORY(i),
                 p_CONTRACT_START_DATE(i),
                 p_CONTRACT_END_DATE(i),
		 p_CATCHWEIGHT_QTY(i),
		 p_ACTUAL_ORDER_QTY(i),
		 nvl (p_LIST_PRICE_OVERRIDE_FLAG(i), 'N'),
                 p_CHARGE_PERIODICITY_CODE(i),
		 p_UNIT_PRICE(i)
		 ); --po integration
Line: 4648

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: 4695

  |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: 4743

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

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

    /*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: 4838

    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: 4942

  |PROCEDURE INSERT_LINES2 for bulk binding
  +-----------------------------------------------------------------------
*/
PROCEDURE INSERT_LINES2
                (p_LINE_INDEX              IN PLS_INTEGER_TYPE,
                 p_LINE_TYPE_CODE          IN VARCHAR_TYPE,
                 p_PRICING_EFFECTIVE_DATE  IN DATE_TYPE   ,
                 p_ACTIVE_DATE_FIRST       IN DATE_TYPE   ,
                 p_ACTIVE_DATE_FIRST_TYPE  IN VARCHAR_TYPE,
                 p_ACTIVE_DATE_SECOND      IN DATE_TYPE   ,
                 p_ACTIVE_DATE_SECOND_TYPE IN VARCHAR_TYPE ,
                 p_LINE_QUANTITY           IN NUMBER_TYPE ,
                 p_LINE_UOM_CODE           IN VARCHAR_TYPE,
                 p_REQUEST_TYPE_CODE      IN VARCHAR_TYPE,
                 p_PRICED_QUANTITY        IN NUMBER_TYPE,
                 p_PRICED_UOM_CODE        IN VARCHAR_TYPE,
                 p_CURRENCY_CODE          IN VARCHAR_TYPE,
                 p_UNIT_PRICE             IN NUMBER_TYPE,
                 p_PERCENT_PRICE          IN NUMBER_TYPE,
                 p_UOM_QUANTITY           IN NUMBER_TYPE,
                 p_ADJUSTED_UNIT_PRICE    IN NUMBER_TYPE,
                 p_UPD_ADJUSTED_UNIT_PRICE    IN NUMBER_TYPE,
                 p_PROCESSED_FLAG         IN VARCHAR_TYPE,
                 p_PRICE_FLAG             IN VARCHAR_TYPE,
                 p_LINE_ID                IN NUMBER_TYPE,
                 p_PROCESSING_ORDER       IN PLS_INTEGER_TYPE,
                 p_PRICING_STATUS_CODE    IN VARCHAR_TYPE,
                 p_PRICING_STATUS_TEXT    IN VARCHAR_TYPE,
                 p_ROUNDING_FLAG          IN FLAG_TYPE,
                 p_ROUNDING_FACTOR        IN PLS_INTEGER_TYPE,
                 p_QUALIFIERS_EXIST_FLAG  IN VARCHAR_TYPE,
                 p_PRICING_ATTRS_EXIST_FLAG IN VARCHAR_TYPE,
                 p_PRICE_LIST_ID          IN NUMBER_TYPE,
                 p_VALIDATED_FLAG         IN VARCHAR_TYPE,
                 p_PRICE_REQUEST_CODE     IN VARCHAR_TYPE,
		 p_USAGE_PRICING_TYPE     IN VARCHAR_TYPE,
                 p_LINE_CATEGORY          IN VARCHAR_TYPE,
                 p_CONTRACT_START_DATE    IN DATE_TYPE,
                 p_CONTRACT_END_DATE    IN DATE_TYPE,
                 p_LINE_UNIT_PRICE    IN NUMBER_TYPE,
                 p_CATCHWEIGHT_QTY    IN NUMBER_TYPE,
                 p_ACTUAL_ORDER_QTY    IN NUMBER_TYPE,
		 p_LIST_PRICE_OVERRIDE_FLAG IN VARCHAR_TYPE, --po integration
                 p_charge_periodicity_code IN VARCHAR_3_TYPE,
                 x_status_code            OUT NOCOPY VARCHAR2,
                 x_status_text            OUT NOCOPY VARCHAR2 )
AS
l_routine VARCHAR2(240):='Routine:QP_PREQ_GRP.INSERT_LINES2';
Line: 5112

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

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: 5249

G_LINE_CATEGORY_DEF_TBL.delete;
Line: 5250

G_CONTRACT_START_DATE_DEF_TBL.delete;
Line: 5251

G_CONTRACT_END_DATE_DEF_TBL.delete;
Line: 5252

G_LINE_UNIT_PRICE_DEF_TBL.delete;
Line: 5253

G_CATCHWEIGHT_QTY_DEF_TBL.delete;
Line: 5254

G_ACTUAL_ORDER_QTY_DEF_TBL.delete;
Line: 5255

G_LIST_PRICE_OVERRIDE_FLAG_TBL.delete;
Line: 5256

G_CHARGE_PERIODICITY_CODE_TBL.delete;
Line: 5269

  |Procedure INSERT_LDETS
  +----------------------------------------------------------------------
*/
PROCEDURE INSERT_LDETS
                (p_LINE_DETAIL_index IN PLS_INTEGER,
                 p_LINE_DETAIL_TYPE_CODE   IN VARCHAR2,
                 p_PRICE_BREAK_TYPE_CODE   IN VARCHAR2:=NULL,
                 p_LIST_PRICE              IN NUMBER:=NULL,
                 p_LINE_INDEX                  IN PLS_INTEGER,
                 p_CREATED_FROM_LIST_HEADER_ID IN NUMBER,
                 p_CREATED_FROM_LIST_LINE_ID   IN NUMBER,
                 p_CREATED_FROM_LIST_LINE_TYPE IN VARCHAR2,
                 p_CREATED_FROM_LIST_TYPE_CODE IN VARCHAR2:=NULL,
                 p_CREATED_FROM_SQL            IN VARCHAR2:=NULL,
                 p_PRICING_GROUP_SEQUENCE      IN PLS_INTEGER:=NULL,
                 P_PRICING_PHASE_ID            IN PLS_INTEGER:=NULL,
                 p_OPERAND_CALCULATION_CODE    IN VARCHAR2:=NULL,
                 p_OPERAND_VALUE               IN VARCHAR2:=NULL,
                 p_SUBSTITUTION_TYPE_CODE      IN VARCHAR2:=NULL,
                 p_SUBSTITUTION_VALUE_FROM     IN VARCHAR2:=NULL,
                 p_SUBSTITUTION_VALUE_TO       IN VARCHAR2:=NULL,
                 p_ASK_FOR_FLAG                IN VARCHAR2:=NULL,
                 p_PRICE_FORMULA_ID            IN NUMBER:=NULL,
                 p_PRICING_STATUS_CODE         IN VARCHAR2,
                 p_PRICING_STATUS_TEXT         IN VARCHAR2:=NULL,
                 p_PRODUCT_PRECEDENCE          IN PLS_INTEGER:=NULL,
                 p_INCOMPATABLILITY_GRP_CODE   IN VARCHAR2:=NULL,
                 p_PROCESSED_FLAG              IN VARCHAR2:=NULL,
                 p_APPLIED_FLAG                IN VARCHAR2:=NULL,
                 p_AUTOMATIC_FLAG              IN VARCHAR2:=NULL,
                 p_OVERRIDE_FLAG               IN VARCHAR2:=NULL,
                 p_PRIMARY_UOM_FLAG            IN VARCHAR2:=NULL,
                 p_PRINT_ON_INVOICE_FLAG       IN VARCHAR2:=NULL,
                 p_MODIFIER_LEVEL_CODE         IN VARCHAR2:=NULL,
                 p_BENEFIT_QTY                 IN NUMBER:=NULL,
                 p_BENEFIT_UOM_CODE            IN VARCHAR2:=NULL,
                 p_LIST_LINE_NO                IN VARCHAR2:=NULL,
                 p_ACCRUAL_FLAG                IN VARCHAR2:=NULL,
                 p_ACCRUAL_CONVERSION_RATE     IN NUMBER:=NULL,
                 p_ESTIM_ACCRUAL_RATE          IN NUMBER:=NULL,
                 p_RECURRING_FLAG              IN VARCHAR2:=NULL,
                 p_RECURRING_VALUE             IN NUMBER:=NULL, -- block pricing
                 p_SELECTED_VOLUME_ATTR        IN VARCHAR2:=NULL,
                 p_ROUNDING_FACTOR             IN NUMBER:=NULL,
                 p_SECONDARY_PRICELIST_IND     IN VARCHAR2:=NULL,
                 p_UPDATED_FLAG                IN VARCHAR := NULL,
                 p_PROCESS_CODE                IN VARCHAR := NULL,
                 p_CHARGE_TYPE_CODE            IN VARCHAR := NULL,
                 p_CHARGE_SUBTYPE_CODE         IN VARCHAR := NULL,
                 p_GROUP_QUANTITY              IN NUMBER :=NULL,
                 p_GROUP_AMOUNT                IN NUMBER :=NULL,
		 p_CALCULATION_CODE	       IN VARCHAR2 := NULL,
                 p_CURRENCY_DETAIL_ID          IN NUMBER :=NULL, /*vivek */
                 p_CURRENCY_HEADER_ID          IN NUMBER :=NULL, /*vivek */
                 p_SELLING_ROUNDING_FACTOR          IN NUMBER :=NULL, /*vivek */
                 p_ORDER_CURRENCY              IN VARCHAR := NULL, /*vivek */
                 p_PRICING_EFFECTIVE_DATE      IN DATE := NULL,/*vivek */
                 p_BASE_CURRENCY_CODE          IN VARCHAR := NULL,/*vivek */
		 p_CHANGE_REASON_CODE		IN VARCHAR2 := NULL,
		 p_CHANGE_REASON_TEXT		IN VARCHAR2 := NULL,
		 p_LINE_QUANTITY		IN NUMBER := NULL,
                 p_BREAK_UOM_CODE              IN VARCHAR2 := NULL, /* Proration */
                 p_BREAK_UOM_CONTEXT           IN VARCHAR2 := NULL, /* Proration */
                 p_BREAK_UOM_ATTRIBUTE         IN VARCHAR2 := NULL, /* Proration */
                 x_status_code                 OUT NOCOPY VARCHAR2,
                 x_status_text                 OUT NOCOPY VARCHAR2)
AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LDETS';
Line: 5338

 INSERT INTO qp_npreq_ldets_tmp
                (LINE_DETAIL_INDEX,
                 LINE_DETAIL_TYPE_CODE,
                 PRICE_BREAK_TYPE_CODE,
                 LINE_INDEX,
                 CREATED_FROM_LIST_HEADER_ID,
                 CREATED_FROM_LIST_LINE_ID,
                 CREATED_FROM_LIST_LINE_TYPE,
                 CREATED_FROM_LIST_TYPE_CODE,
                 CREATED_FROM_SQL,
                 PRICING_GROUP_SEQUENCE,
                 PRICING_PHASE_ID,
                 OPERAND_CALCULATION_CODE,
                 OPERAND_VALUE,
                 SUBSTITUTION_TYPE_CODE,
                 SUBSTITUTION_VALUE_FROM,
                 SUBSTITUTION_VALUE_TO,
                 ASK_FOR_FLAG,
                 PRICE_FORMULA_ID,
                 PRICING_STATUS_CODE,
                 PRICING_STATUS_TEXT,
                 PRODUCT_PRECEDENCE,
                 INCOMPATABILITY_GRP_CODE,
                 PROCESSED_FLAG,
                 APPLIED_FLAG,
                 AUTOMATIC_FLAG,
                 OVERRIDE_FLAG,
                 PRINT_ON_INVOICE_FLAG,
                 PRIMARY_UOM_FLAG,
                 MODIFIER_LEVEL_CODE,
                 BENEFIT_QTY,
                 BENEFIT_UOM_CODE,
                 LIST_LINE_NO,
                 ACCRUAL_FLAG,
                 ACCRUAL_CONVERSION_RATE,
                 ESTIM_ACCRUAL_RATE,
                 RECURRING_FLAG,
                 RECURRING_VALUE, -- block pricing
                 SELECTED_VOLUME_ATTR,
                 ROUNDING_FACTOR,
                 UPDATED_FLAG,
                 PROCESS_CODE,
                 CHARGE_TYPE_CODE,
                 CHARGE_SUBTYPE_CODE,
                 GROUP_QUANTITY,
                 GROUP_AMOUNT,
		 CALCULATION_CODE,
                 CURRENCY_DETAIL_ID, /*vivek */
                 CURRENCY_HEADER_ID, /*vivek */
                 SELLING_ROUNDING_FACTOR, /*vivek */
                 ORDER_CURRENCY, /*vivek */
                 PRICING_EFFECTIVE_DATE,/*vivek */
                 BASE_CURRENCY_CODE,/*vivek */
		 CHANGE_REASON_CODE,
		 CHANGE_REASON_TEXT,
		 LINE_QUANTITY
                ,BREAK_UOM_CODE /* Proration */
                ,BREAK_UOM_CONTEXT /* Proration */
                ,BREAK_UOM_ATTRIBUTE /* Proration */
          )
  VALUES (       p_LINE_DETAIL_INDEX,
                 p_LINE_DETAIL_TYPE_CODE,
                 p_PRICE_BREAK_TYPE_CODE,
                 p_LINE_INDEX,
                 p_CREATED_FROM_LIST_HEADER_ID,
                 p_CREATED_FROM_LIST_LINE_ID,
                 p_CREATED_FROM_LIST_LINE_TYPE,
                 p_CREATED_FROM_LIST_TYPE_CODE,
                 p_CREATED_FROM_SQL,
                 p_PRICING_GROUP_SEQUENCE,
                 p_PRICING_PHASE_ID,
                 p_OPERAND_CALCULATION_CODE,
                 p_OPERAND_VALUE,
                 p_SUBSTITUTION_TYPE_CODE,
                 p_SUBSTITUTION_VALUE_FROM,
                 p_SUBSTITUTION_VALUE_TO,
                 p_ASK_FOR_FLAG,
                 p_PRICE_FORMULA_ID,
                 p_PRICING_STATUS_CODE,
                 p_PRICING_STATUS_TEXT,
                 p_PRODUCT_PRECEDENCE,
                 p_INCOMPATABLILITY_GRP_CODE,
                 p_PROCESSED_FLAG,
                 p_APPLIED_FLAG,
                 p_AUTOMATIC_FLAG,
                 p_OVERRIDE_FLAG,
                 p_PRINT_ON_INVOICE_FLAG,
                 p_PRIMARY_UOM_FLAG,
                 p_MODIFIER_LEVEL_CODE,
                 p_BENEFIT_QTY,
                 p_BENEFIT_UOM_CODE,
                 p_LIST_LINE_NO,
                 p_ACCRUAL_FLAG,
                 p_ACCRUAL_CONVERSION_RATE,
                 p_ESTIM_ACCRUAL_RATE,
                 p_RECURRING_FLAG,
                 p_RECURRING_VALUE, -- block pricing
                 p_SELECTED_VOLUME_ATTR,
                 p_ROUNDING_FACTOR,
                 p_UPDATED_FLAG,
                 nvl(p_PROCESS_CODE,G_STATUS_NEW),
                 p_CHARGE_TYPE_CODE,
                 p_CHARGE_SUBTYPE_CODE,
                 p_GROUP_QUANTITY,
                 p_GROUP_AMOUNT,
		 p_CALCULATION_CODE,
                 P_CURRENCY_DETAIL_ID, /*vivek */
                 P_CURRENCY_HEADER_ID, /*vivek */
                 P_SELLING_ROUNDING_FACTOR, /*vivek */
                 P_ORDER_CURRENCY, /*vivek */
                 P_PRICING_EFFECTIVE_DATE,/*vivek */
                 P_BASE_CURRENCY_CODE,/*vivek */
		 p_CHANGE_REASON_CODE,
		 p_CHANGE_REASON_TEXT,
		 p_LINE_QUANTITY
                ,p_BREAK_UOM_CODE /* Proration */
                ,p_BREAK_UOM_CONTEXT /* Proration */
                ,p_BREAK_UOM_ATTRIBUTE /* Proration */
           );
Line: 5468

  |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: 5508

   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: 5580

  |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: 5626

 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: 5711

  |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: 5760

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

 /*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: 5854

 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: 5962

  |Procedure Group INSERT_LDETS2
  +----------------------------------------------------------------------
*/

PROCEDURE INSERT_LDETS2
                (p_LINE_DETAIL_INDEX           IN PLS_INTEGER_TYPE,
                 p_LINE_DETAIL_TYPE_CODE       IN VARCHAR_TYPE,
                 p_PRICE_BREAK_TYPE_CODE       IN VARCHAR_TYPE,
                 p_LINE_INDEX                  IN NUMBER_TYPE,
                 p_LIST_HEADER_ID              IN NUMBER_TYPE,
                 p_LIST_LINE_ID                IN NUMBER_TYPE,
                 p_LIST_LINE_TYPE_CODE         IN VARCHAR_TYPE,
                 p_LIST_TYPE_CODE              IN VARCHAR_TYPE,
                 p_PRICING_GROUP_SEQUENCE      IN PLS_INTEGER_TYPE,
                 p_PRICING_PHASE_ID            IN PLS_INTEGER_TYPE,
                 p_OPERAND_CALCULATION_CODE    IN VARCHAR_TYPE,
                 p_OPERAND_VALUE               IN VARCHAR_TYPE,
                 p_SUBSTITUTION_TYPE_CODE      IN VARCHAR_TYPE,
                 p_SUBSTITUTION_VALUE_FROM     IN VARCHAR_TYPE,
                 p_SUBSTITUTION_VALUE_TO       IN VARCHAR_TYPE,
                 p_PRICE_FORMULA_ID            IN NUMBER_TYPE,
                 p_PRODUCT_PRECEDENCE          IN PLS_INTEGER_TYPE,
                 p_INCOMPATABLILITY_GRP_CODE   IN VARCHAR_TYPE,
                 p_APPLIED_FLAG                IN VARCHAR_TYPE,
                 p_AUTOMATIC_FLAG              IN VARCHAR_TYPE,
                 p_OVERRIDE_FLAG               IN VARCHAR_TYPE,
                 p_MODIFIER_LEVEL_CODE         IN VARCHAR_TYPE,
                 p_BENEFIT_QTY                 IN NUMBER_TYPE,
                 p_BENEFIT_UOM_CODE            IN VARCHAR_TYPE,
                 p_LIST_LINE_NO                IN VARCHAR_TYPE,
                 p_ACCRUAL_FLAG                IN VARCHAR_TYPE,
                 p_ACCRUAL_CONVERSION_RATE     IN NUMBER_TYPE,
		 p_ESTIM_ACCRUAL_RATE          IN NUMBER_TYPE,
                 p_CHARGE_TYPE_CODE            IN VARCHAR_TYPE,
                 p_CHARGE_SUBTYPE_CODE         IN VARCHAR_TYPE,
		 p_LINE_QUANTITY               IN NUMBER_TYPE,
		 p_UPDATED_FLAG                IN VARCHAR_TYPE,
		 p_CALCULATION_CODE            IN VARCHAR_TYPE,
		 p_CHANGE_REASON_CODE          IN VARCHAR_TYPE,
		 p_CHANGE_REASON_TEXT          IN VARCHAR_TYPE,
                 p_ACCUM_CONTEXT               IN VARCHAR_TYPE, -- accum range break
                 p_ACCUM_ATTRIBUTE             IN VARCHAR_TYPE, -- accum range break
                 p_ACCUM_FLAG                  IN VARCHAR_TYPE, -- accum range break
		 p_BREAK_UOM_CODE              IN VARCHAR_TYPE, /* Proration*/
		 p_BREAK_UOM_CONTEXT           IN VARCHAR_TYPE, /* Proration*/
		 p_BREAK_UOM_ATTRIBUTE         IN VARCHAR_TYPE, /* Proration*/
                 x_status_code                 OUT NOCOPY VARCHAR2,
                 x_status_text                 OUT NOCOPY VARCHAR2) AS

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

 INSERT INTO qp_npreq_ldets_tmp
                (LINE_DETAIL_INDEX,
                 LINE_DETAIL_TYPE_CODE,
                 PRICE_BREAK_TYPE_CODE,
                 LINE_INDEX,
                 CREATED_FROM_LIST_HEADER_ID,
                 CREATED_FROM_LIST_LINE_ID,
                 CREATED_FROM_LIST_LINE_TYPE,
                 CREATED_FROM_LIST_TYPE_CODE,
                 PRICING_GROUP_SEQUENCE,
                 PRICING_PHASE_ID,
                 OPERAND_CALCULATION_CODE,
                 OPERAND_VALUE,
                 SUBSTITUTION_TYPE_CODE,
                 SUBSTITUTION_VALUE_FROM,
                 SUBSTITUTION_VALUE_TO,
                 PRICE_FORMULA_ID,
                 PRICING_STATUS_CODE,
                 PRODUCT_PRECEDENCE,
                 INCOMPATABILITY_GRP_CODE,
                 APPLIED_FLAG,
                 AUTOMATIC_FLAG,
                 OVERRIDE_FLAG,
                 MODIFIER_LEVEL_CODE,
                 BENEFIT_QTY,
                 BENEFIT_UOM_CODE,
                 LIST_LINE_NO,
                 ACCRUAL_FLAG,
                 ACCRUAL_CONVERSION_RATE,
                 ESTIM_ACCRUAL_RATE,
                 CHARGE_TYPE_CODE,
                 CHARGE_SUBTYPE_CODE,
		 PROCESS_CODE,
		 LINE_QUANTITY,
		 UPDATED_FLAG, -- begin shu, fix Bug 2599822
		 CALCULATION_CODE,
		 CHANGE_REASON_CODE,
		 CHANGE_REASON_TEXT,
                 ACCUM_CONTEXT, -- accum range break
                 ACCUM_ATTRIBUTE, -- accum range break
                 ACCUM_ATTR_RUN_SRC_FLAG
                ,BREAK_UOM_CODE /* Proration */
                ,BREAK_UOM_CONTEXT /* Proration */
                ,BREAK_UOM_ATTRIBUTE /* Proration */
         )
  VALUES (
                 p_LINE_DETAIL_INDEX(i),
                 'NULL',
                 p_PRICE_BREAK_TYPE_CODE(i),
                 p_LINE_INDEX(i),
                 p_LIST_HEADER_ID(i),
                 p_LIST_LINE_ID(i),
                 p_LIST_LINE_TYPE_CODE(i),
                 p_LIST_TYPE_CODE(i),
                 p_PRICING_GROUP_SEQUENCE(i),
                 p_PRICING_PHASE_ID(i),
                 p_OPERAND_CALCULATION_CODE(i),
                 p_OPERAND_VALUE(i),
                 p_SUBSTITUTION_TYPE_CODE(i),
                 p_SUBSTITUTION_VALUE_FROM(i),
                 p_SUBSTITUTION_VALUE_TO(i),
                 p_PRICE_FORMULA_ID(i),
                 G_STATUS_NEW,
                 p_PRODUCT_PRECEDENCE(i),
                 p_INCOMPATABLILITY_GRP_CODE(i),
                 p_APPLIED_FLAG(i),
                 p_AUTOMATIC_FLAG(i),
                 p_OVERRIDE_FLAG(i),
                 p_MODIFIER_LEVEL_CODE(i),
                 p_BENEFIT_QTY(i),
                 p_BENEFIT_UOM_CODE(i),
                 p_LIST_LINE_NO(i),
                 p_ACCRUAL_FLAG(i),
                 p_ACCRUAL_CONVERSION_RATE(i),
                 p_ESTIM_ACCRUAL_RATE(i),
                 p_CHARGE_TYPE_CODE(i),
                 p_CHARGE_SUBTYPE_CODE(i),
		 G_STATUS_NEW,
		 p_LINE_QUANTITY(i),
		 p_UPDATED_FLAG(i),
		 p_CALCULATION_CODE(i),
		 p_CHANGE_REASON_CODE(i),
		 p_CHANGE_REASON_TEXT(i),
                 p_ACCUM_CONTEXT(i), -- accum range break
                 p_ACCUM_ATTRIBUTE(i), -- accum range break
                 p_ACCUM_FLAG(i)
                ,p_BREAK_UOM_CODE(i) /* Proration */
                ,p_BREAK_UOM_CONTEXT(i) /* Proration */
                ,p_BREAK_UOM_ATTRIBUTE(i) /* Proration */
          );
Line: 6124

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: 6185

  |Procedure INSERT_LDETS_PVT
  +----------------------------------------------------------------------
*/
PROCEDURE INSERT_LDETS_PVT
                (p_LINE_DETAIL_INDEX           IN PLS_INTEGER_TYPE,
                 p_LINE_DETAIL_TYPE_CODE       IN VARCHAR_TYPE,
                 p_PRICE_BREAK_TYPE_CODE       IN VARCHAR_TYPE,
                 p_LINE_INDEX                  IN PLS_INTEGER_TYPE,
                 p_CREATED_FROM_LIST_HEADER_ID IN NUMBER_TYPE,
                 p_CREATED_FROM_LIST_LINE_ID   IN NUMBER_TYPE,
                 p_CREATED_FROM_LIST_LINE_TYPE IN VARCHAR_TYPE,
                 p_CREATED_FROM_LIST_TYPE_CODE IN VARCHAR_TYPE,
                 p_CREATED_FROM_SQL            IN VARCHAR_TYPE,
                 p_PRICING_GROUP_SEQUENCE      IN PLS_INTEGER_TYPE,
                 P_PRICING_PHASE_ID            IN PLS_INTEGER_TYPE,
                 p_OPERAND_CALCULATION_CODE    IN VARCHAR_TYPE,
                 p_OPERAND_VALUE               IN VARCHAR_TYPE,
                 p_NET_AMOUNT_FLAG             IN VARCHAR_TYPE, --2720717, net_amount
                 p_ASK_FOR_FLAG                IN VARCHAR_TYPE,
                 p_PRICE_FORMULA_ID            IN NUMBER_TYPE,
                 p_PRICING_STATUS_CODE         IN VARCHAR_TYPE,
                 p_PRICING_STATUS_TEXT         IN VARCHAR_TYPE,
                 p_PRODUCT_PRECEDENCE          IN PLS_INTEGER_TYPE,
                 p_INCOMPATABLILITY_GRP_CODE   IN VARCHAR_TYPE,
                 p_PROCESSED_FLAG              IN VARCHAR_TYPE,
                 p_APPLIED_FLAG                IN VARCHAR_TYPE,
                 p_AUTOMATIC_FLAG              IN VARCHAR_TYPE,
                 p_OVERRIDE_FLAG               IN VARCHAR_TYPE,
                 p_PRIMARY_UOM_FLAG            IN VARCHAR_TYPE,
                 p_MODIFIER_LEVEL_CODE         IN VARCHAR_TYPE,
                 p_BENEFIT_QTY                 IN NUMBER_TYPE,
                 p_BENEFIT_UOM_CODE            IN VARCHAR_TYPE,
                 p_LIST_LINE_NO                IN VARCHAR_TYPE,
                 p_ACCRUAL_FLAG                IN VARCHAR_TYPE,
                 p_ACCRUAL_CONVERSION_RATE     IN NUMBER_TYPE,
                 p_ESTIM_ACCRUAL_RATE          IN NUMBER_TYPE,
                 p_HEADER_LIMIT_EXISTS         IN VARCHAR_TYPE,
                 p_LINE_LIMIT_EXISTS           IN VARCHAR_TYPE,
                 p_CHARGE_TYPE_CODE            IN VARCHAR_TYPE,
                 p_CHARGE_SUBTYPE_CODE         IN VARCHAR_TYPE,
                 p_ACCUM_CONTEXT               IN VARCHAR_TYPE, -- accum range break
                 p_ACCUM_ATTRIBUTE             IN VARCHAR_TYPE, -- accum range break
                 p_ACCUM_FLAG                  IN VARCHAR_TYPE, -- accum range break
                 x_status_code                 OUT NOCOPY VARCHAR2,
                 x_status_text                 OUT NOCOPY VARCHAR2)
AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LDETS_PVT';
Line: 6236

   INSERT INTO qp_npreq_ldets_tmp
                (LINE_DETAIL_INDEX,
                 LINE_DETAIL_TYPE_CODE,
                 PRICE_BREAK_TYPE_CODE,
                 LINE_INDEX,
                 CREATED_FROM_LIST_HEADER_ID,
                 CREATED_FROM_LIST_LINE_ID,
                 CREATED_FROM_LIST_LINE_TYPE,
                 CREATED_FROM_LIST_TYPE_CODE,
                 CREATED_FROM_SQL,
                 PRICING_GROUP_SEQUENCE,
                 PRICING_PHASE_ID,
                 OPERAND_CALCULATION_CODE,
                 OPERAND_VALUE,
                 NET_AMOUNT_FLAG,     --2720717, net_amount
                 ASK_FOR_FLAG,
                 PRICE_FORMULA_ID,
                 PRICING_STATUS_CODE,
                 PRICING_STATUS_TEXT,
                 PRODUCT_PRECEDENCE,
                 INCOMPATABILITY_GRP_CODE,
                 PROCESSED_FLAG,
                 APPLIED_FLAG,
                 AUTOMATIC_FLAG,
                 OVERRIDE_FLAG,
                 PRIMARY_UOM_FLAG,
                 MODIFIER_LEVEL_CODE,
                 BENEFIT_QTY,
                 BENEFIT_UOM_CODE,
                 LIST_LINE_NO,
                 ACCRUAL_FLAG,
                 ACCRUAL_CONVERSION_RATE,
                 ESTIM_ACCRUAL_RATE,
                 HEADER_LIMIT_EXISTS,
                 LINE_LIMIT_EXISTS,
		 PROCESS_CODE,
                 CHARGE_TYPE_CODE,
                 CHARGE_SUBTYPE_CODE,
                 ACCUM_CONTEXT,
                 ACCUM_ATTRIBUTE,
                 ACCUM_ATTR_RUN_SRC_FLAG)
   VALUES (      p_LINE_DETAIL_INDEX(i),
                 p_LINE_DETAIL_TYPE_CODE(i),
                 p_PRICE_BREAK_TYPE_CODE(i),
                 p_LINE_INDEX(i),
                 p_CREATED_FROM_LIST_HEADER_ID(i),
                 p_CREATED_FROM_LIST_LINE_ID(i),
                 p_CREATED_FROM_LIST_LINE_TYPE(i),
                 p_CREATED_FROM_LIST_TYPE_CODE(i),
                 p_CREATED_FROM_SQL(i),
                 p_PRICING_GROUP_SEQUENCE(i),
                 p_PRICING_PHASE_ID(i),
                 p_OPERAND_CALCULATION_CODE(i),
                 p_OPERAND_VALUE(i),
                 p_NET_AMOUNT_FLAG(i),      --2720717, net_amount
                 p_ASK_FOR_FLAG(i),
                 p_PRICE_FORMULA_ID(i),
                 p_PRICING_STATUS_CODE(i),
                 p_PRICING_STATUS_TEXT(i),
                 p_PRODUCT_PRECEDENCE(i),
                 p_INCOMPATABLILITY_GRP_CODE(i),
                 p_PROCESSED_FLAG(i),
                 p_APPLIED_FLAG(i),
                 p_AUTOMATIC_FLAG(i),
                 p_OVERRIDE_FLAG(i),
                 p_PRIMARY_UOM_FLAG(i),
                 p_MODIFIER_LEVEL_CODE(i),
                 p_BENEFIT_QTY(i),
                 p_BENEFIT_UOM_CODE(i),
                 p_LIST_LINE_NO(i),
                 p_ACCRUAL_FLAG(i),
                 p_ACCRUAL_CONVERSION_RATE(i),
                 p_ESTIM_ACCRUAL_RATE(i),
                 decode(p_HEADER_LIMIT_EXISTS(i),'Y','Y',decode(p_LINE_LIMIT_EXISTS(i),'Y','Y','N')),
                 p_LINE_LIMIT_EXISTS(i),
		 G_STATUS_NEW,
                 p_CHARGE_TYPE_CODE(i),
                 p_CHARGE_SUBTYPE_CODE(i),
                 p_ACCUM_CONTEXT(i),
                 p_ACCUM_ATTRIBUTE(i),
                 p_ACCUM_FLAG(i));
Line: 6328

  |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: 6399

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

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

  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: 6552

  |Procedure Public INSERT_LDETS2
  +----------------------------------------------------------------------
*/
PROCEDURE INSERT_LDETS2
                (p_LINE_DETAIL_index           IN PLS_INTEGER_TYPE,
                 p_LINE_DETAIL_TYPE_CODE       IN VARCHAR_TYPE,
                 p_PRICE_BREAK_TYPE_CODE       IN VARCHAR_TYPE,
                 p_LIST_PRICE                  IN NUMBER_TYPE,
                 p_LINE_INDEX                  IN PLS_INTEGER_TYPE,
                 p_CREATED_FROM_LIST_HEADER_ID IN NUMBER_TYPE,
                 p_CREATED_FROM_LIST_LINE_ID   IN NUMBER_TYPE,
                 p_CREATED_FROM_LIST_LINE_TYPE IN VARCHAR_TYPE,
                 p_CREATED_FROM_LIST_TYPE_CODE IN VARCHAR_TYPE,
                 p_CREATED_FROM_SQL            IN VARCHAR_TYPE,
                 p_PRICING_GROUP_SEQUENCE      IN PLS_INTEGER_TYPE,
                 P_PRICING_PHASE_ID            IN PLS_INTEGER_TYPE,
                 p_OPERAND_CALCULATION_CODE    IN VARCHAR_TYPE,
                 p_OPERAND_VALUE               IN VARCHAR_TYPE,
                 p_SUBSTITUTION_TYPE_CODE      IN VARCHAR_TYPE,
                 p_SUBSTITUTION_VALUE_FROM     IN VARCHAR_TYPE,
                 p_SUBSTITUTION_VALUE_TO       IN VARCHAR_TYPE,
                 p_ASK_FOR_FLAG                IN VARCHAR_TYPE,
                 p_PRICE_FORMULA_ID            IN NUMBER_TYPE,
                 p_PRICING_STATUS_CODE         IN VARCHAR_TYPE,
                 p_PRICING_STATUS_TEXT         IN VARCHAR_TYPE,
                 p_PRODUCT_PRECEDENCE          IN PLS_INTEGER_TYPE,
                 p_INCOMPATABLILITY_GRP_CODE   IN VARCHAR_TYPE,
                 p_PROCESSED_FLAG              IN VARCHAR_TYPE,
                 p_APPLIED_FLAG                IN VARCHAR_TYPE,
                 p_AUTOMATIC_FLAG              IN VARCHAR_TYPE,
                 p_OVERRIDE_FLAG               IN VARCHAR_TYPE,
                 p_PRIMARY_UOM_FLAG            IN VARCHAR_TYPE,
                 p_PRINT_ON_INVOICE_FLAG       IN VARCHAR_TYPE,
                 p_MODIFIER_LEVEL_CODE         IN VARCHAR_TYPE,
                 p_BENEFIT_QTY                 IN NUMBER_TYPE,
                 p_BENEFIT_UOM_CODE            IN VARCHAR_TYPE,
                 p_LIST_LINE_NO                IN VARCHAR_TYPE,
                 p_ACCRUAL_FLAG                IN VARCHAR_TYPE,
                 p_ACCRUAL_CONVERSION_RATE     IN NUMBER_TYPE,
                 p_ESTIM_ACCRUAL_RATE          IN NUMBER_TYPE,
                 p_RECURRING_FLAG              IN VARCHAR_TYPE,
                 p_SELECTED_VOLUME_ATTR        IN VARCHAR_TYPE,
                 p_ROUNDING_FACTOR             IN PLS_INTEGER_TYPE,
                 p_HEADER_LIMIT_EXISTS         IN VARCHAR_TYPE,
                 p_LINE_LIMIT_EXISTS           IN VARCHAR_TYPE,
                 p_CHARGE_TYPE_CODE            IN VARCHAR_TYPE,
                 p_CHARGE_SUBTYPE_CODE         IN VARCHAR_TYPE,
                 p_CURRENCY_DETAIL_ID          IN NUMBER_TYPE,
                 p_CURRENCY_HEADER_ID          IN NUMBER_TYPE,
                 p_SELLING_ROUNDING_FACTOR     IN NUMBER_TYPE,
                 p_ORDER_CURRENCY              IN VARCHAR_TYPE,
                 p_PRICING_EFFECTIVE_DATE      IN DATE_TYPE,
                 p_BASE_CURRENCY_CODE          IN VARCHAR_TYPE,
		 p_LINE_QUANTITY	       IN NUMBER_TYPE,
                 p_UPDATED_FLAG                IN VARCHAR_TYPE,
		 p_CALCULATION_CODE            IN VARCHAR_TYPE,
		 p_CHANGE_REASON_CODE          IN VARCHAR_TYPE,
		 p_CHANGE_REASON_TEXT          IN VARCHAR_TYPE,
		 p_PRICE_ADJUSTMENT_ID         IN NUMBER_TYPE, -- bug 3099847
                 p_ACCUM_CONTEXT               IN VARCHAR_TYPE, -- accum range break
                 p_ACCUM_ATTRIBUTE             IN VARCHAR_TYPE, -- accum range break
                 p_ACCUM_FLAG                  IN VARCHAR_TYPE, -- accum range break
		 p_BREAK_UOM_CODE              IN VARCHAR_TYPE, /* Proration*/
		 p_BREAK_UOM_CONTEXT           IN VARCHAR_TYPE, /* Proration*/
		 p_BREAK_UOM_ATTRIBUTE         IN VARCHAR_TYPE, /* Proration*/
                 p_PROCESS_CODE                IN VARCHAR_TYPE, -- 3215497
                 x_status_code                 OUT NOCOPY VARCHAR2,
                 x_status_text                 OUT NOCOPY VARCHAR2)
AS
l_routine VARCHAR2(240):= 'Routine:QP_PREQ_GRP.INSERT_LDETS2';
Line: 6634

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

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: 6738

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

 INSERT INTO qp_npreq_ldets_tmp
                (LINE_DETAIL_INDEX,
                 LINE_DETAIL_TYPE_CODE,
                 PRICE_BREAK_TYPE_CODE,
                 LINE_INDEX,
                 CREATED_FROM_LIST_HEADER_ID,
                 CREATED_FROM_LIST_LINE_ID,
                 CREATED_FROM_LIST_LINE_TYPE,
                 CREATED_FROM_LIST_TYPE_CODE,
                 CREATED_FROM_SQL,
                 PRICING_GROUP_SEQUENCE,
                 PRICING_PHASE_ID,
                 OPERAND_CALCULATION_CODE,
                 OPERAND_VALUE,
                 SUBSTITUTION_TYPE_CODE,
                 SUBSTITUTION_VALUE_FROM,
                 SUBSTITUTION_VALUE_TO,
                 ASK_FOR_FLAG,
                 PRICE_FORMULA_ID,
                 PRICING_STATUS_CODE,
                 PRICING_STATUS_TEXT,
                 PRODUCT_PRECEDENCE,
                 INCOMPATABILITY_GRP_CODE,
                 PROCESSED_FLAG,
                 APPLIED_FLAG,
                 AUTOMATIC_FLAG,
                 OVERRIDE_FLAG,
                 PRINT_ON_INVOICE_FLAG,
                 PRIMARY_UOM_FLAG,
                 MODIFIER_LEVEL_CODE,
                 BENEFIT_QTY,
                 BENEFIT_UOM_CODE,
                 LIST_LINE_NO,
                 ACCRUAL_FLAG,
                 ACCRUAL_CONVERSION_RATE,
                 ESTIM_ACCRUAL_RATE,
                 RECURRING_FLAG,
                 SELECTED_VOLUME_ATTR,
                 ROUNDING_FACTOR,
                 HEADER_LIMIT_EXISTS,
                 LINE_LIMIT_EXISTS,
                 CHARGE_TYPE_CODE,
                 CHARGE_SUBTYPE_CODE,
                 CURRENCY_DETAIL_ID, /*sunilpandey */
                 CURRENCY_HEADER_ID, /*vivek */
                 SELLING_ROUNDING_FACTOR, /*vivek */
                 ORDER_CURRENCY, /*vivek */
                 PRICING_EFFECTIVE_DATE,/*vivek */
                 BASE_CURRENCY_CODE,/*vivek */
		 PROCESS_CODE,
		 LINE_QUANTITY,
		 UPDATED_FLAG, -- begin shu fix bug 2599822
		 CALCULATION_CODE,
		 CHANGE_REASON_CODE,
		 CHANGE_REASON_TEXT, -- end shu fix bug 2599822
		 PRICE_ADJUSTMENT_ID, -- bug 3099847
                 ACCUM_CONTEXT,          -- accum range break
                 ACCUM_ATTRIBUTE,        -- accum range break
                 ACCUM_ATTR_RUN_SRC_FLAG, -- accum range break
                 BREAK_UOM_CODE, /* Proration */
                 BREAK_UOM_CONTEXT, /* Proration */
                 BREAK_UOM_ATTRIBUTE /* Proration */
                 )
  VALUES (       p_LINE_DETAIL_INDEX(i),
                 p_LINE_DETAIL_TYPE_CODE(i),
                 p_PRICE_BREAK_TYPE_CODE(i),
                 p_LINE_INDEX(i),
                 p_CREATED_FROM_LIST_HEADER_ID(i),
                 p_CREATED_FROM_LIST_LINE_ID(i),
                 p_CREATED_FROM_LIST_LINE_TYPE(i),
                 p_CREATED_FROM_LIST_TYPE_CODE(i),
                 p_CREATED_FROM_SQL(i),
                 p_PRICING_GROUP_SEQUENCE(i),
                 p_PRICING_PHASE_ID(i),
                 p_OPERAND_CALCULATION_CODE(i),
                 p_OPERAND_VALUE(i),
                 p_SUBSTITUTION_TYPE_CODE(i),
                 p_SUBSTITUTION_VALUE_FROM(i),
                 p_SUBSTITUTION_VALUE_TO(i),
                 p_ASK_FOR_FLAG(i),
                 p_PRICE_FORMULA_ID(i),
                 p_PRICING_STATUS_CODE(i),
                 p_PRICING_STATUS_TEXT(i),
                 p_PRODUCT_PRECEDENCE(i),
                 p_INCOMPATABLILITY_GRP_CODE(i),
                 p_PROCESSED_FLAG(i),
                 p_APPLIED_FLAG(i),
                 p_AUTOMATIC_FLAG(i),
                 p_OVERRIDE_FLAG(i),
                 p_PRINT_ON_INVOICE_FLAG(i),
                 p_PRIMARY_UOM_FLAG(i),
                 p_MODIFIER_LEVEL_CODE(i),
                 p_BENEFIT_QTY(i),
                 p_BENEFIT_UOM_CODE(i),
                 p_LIST_LINE_NO(i),
                 p_ACCRUAL_FLAG(i),
                 p_ACCRUAL_CONVERSION_RATE(i),
                 p_ESTIM_ACCRUAL_RATE(i),
                 p_RECURRING_FLAG(i),
                 p_SELECTED_VOLUME_ATTR(i),
                 p_ROUNDING_FACTOR(i),
                 decode(p_HEADER_LIMIT_EXISTS(i),'Y','Y',decode(p_LINE_LIMIT_EXISTS(i),'Y','Y','N')),
                 p_LINE_LIMIT_EXISTS(i),
                 p_CHARGE_TYPE_CODE(i),
                 p_CHARGE_SUBTYPE_CODE(i),
                 G_CURRENCY_DETAIL_ID_DEF_TBL(i),    /* sunilpandey */
                 G_CURRENCY_HEADER_ID_DEF_TBL(i),    /* vivek */
                 G_SELLING_ROUNDING_DEF_TBL(i),    /* vivek */
                 G_ORDER_CURRENCY_DEF_TBL(i),        /* vivek */
                 G_PRICING_EFF_DATE_DEF_TBL(i),      /* vivek */
                 G_BASE_CURRENCY_DEF_TBL(i),         /* vivek */
		 G_PROCESS_CODE_DEF_TBL(i), -- 3215497, changed from G_STATUS_NEW,
		 G_LDET_LINE_QUANTITY_TBL(i),
		 G_UPDATED_FLAG_DEF_TBL(i),  -- begin shu fix bug 2599822
		 G_CALCULATION_CODE_DEF_TBL(i),
		 G_CHANGE_REASON_CODE_DEF_TBL(i),
		 G_CHANGE_REASON_TEXT_DEF_TBL(i),    -- end shu fix bug 2599822
		 G_PRICE_ADJUSTMENT_ID_DEF_TBL(i), -- bug 3099847
                 G_ACCUM_CONTEXT_DEF_TBL(i),   -- accum range break
                 G_ACCUM_ATTRIBUTE_DEF_TBL(i), -- accum range break
                 G_ACCUM_FLAG_DEF_TBL(i),       -- accum range break
		 G_BREAK_UOM_CODE_DEF_TBL(i), /* Proration */
		 G_BREAK_UOM_CONTEXT_DEF_TBL(i), /* Proration */
		 G_BREAK_UOM_ATTRIBUTE_DEF_TBL(i) /* Proration */
             );
Line: 6996

  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: 7064

G_CURRENCY_DETAIL_ID_DEF_TBL.delete;
Line: 7065

G_CURRENCY_HEADER_ID_DEF_TBL.delete;
Line: 7066

G_SELLING_ROUNDING_DEF_TBL.delete;
Line: 7067

G_ORDER_CURRENCY_DEF_TBL.delete;
Line: 7068

G_PRICING_EFF_DATE_DEF_TBL.delete;
Line: 7069

G_BASE_CURRENCY_DEF_TBL.delete;
Line: 7070

G_LDET_LINE_QUANTITY_TBL.delete;
Line: 7071

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

G_CALCULATION_CODE_DEF_TBL.delete;
Line: 7073

G_CHANGE_REASON_CODE_DEF_TBL.delete;
Line: 7074

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

G_PRICE_ADJUSTMENT_ID_DEF_TBL.delete; -- bug 3099847
Line: 7076

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

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

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

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

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

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

G_PROCESS_CODE_DEF_TBL.delete; -- 3215497
Line: 7095

  |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: 7111

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

  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: 7158

  |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: 7230

  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: 7257

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: 7271

   G_LIST_LINE_ID_DEF_TBL.delete;
Line: 7272

   G_RLTD_LIST_LINE_ID_DEF_TBL.delete;
Line: 7274

   G_PRICING_STATUS_TEXT_DEF_TBL.delete;
Line: 7283

END INSERT_RLTD_LINES2; -- public version
Line: 7286

  |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: 7320

  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: 7332

END INSERT_RLTD_LINES2; -- overloaded version
Line: 7349

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: 7374

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: 7387

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: 7435

    l_co_line_index_tbl.delete;
Line: 7436

    l_ia_value_from_tbl.delete;
Line: 7437

    l_ia_line_index_tbl.delete;
Line: 7438

    l_ia_attribute_tbl.delete;
Line: 7446

     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: 7456

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

        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: 7478

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

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

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

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

      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: 7584

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

        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: 7602

    /*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: 7615

      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: 7627

      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: 7639

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

     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: 7671

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

        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: 7696

           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: 7728

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: 7735

INDX,QP_PREQ_GRP.update_distinct_qualifier_flag.sel1,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.update_distinct_qualifier_flag.sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.update_distinct_qualifier_flag.sel1,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.update_distinct_qualifier_flag.sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.update_distinct_qualifier_flag.sel1,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.update_distinct_qualifier_flag.sel1,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6
*/
 UPDATE /*+ dynamic_sampling(1) */ qp_npreq_line_attrs_tmp a
 SET    distinct_qualifier_flag = 'Y'
 WHERE  pricing_status_code = G_STATUS_UNCHANGED
 AND    attribute_type = G_QUALIFIER_TYPE
 AND    rowid = (SELECT /*+ dynamic_sampling(1) */ min(rowid)
                 FROM qp_npreq_line_attrs_tmp b
                 WHERE a.context = b.context
                 AND   a.attribute = b.attribute
                 AND   a.value_from = b.value_from
                 AND   b.attribute_type = G_QUALIFIER_TYPE
                 AND   b.pricing_status_code = G_STATUS_UNCHANGED);
Line: 7755

  /* 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: 7772

END Update_Distinct_Qualifier_Flag;
Line: 7776

  |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: 7789

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: 7801

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

 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: 7831

END Delete_Duplicate_List_Lines;
Line: 7834

  |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: 7849

 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: 7904

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

END Delete_Hdrs_With_No_ProdAttr;
Line: 7919

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: 7955

     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: 7976

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

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

END Delete_Un_Asked_For_Promotions;
Line: 8033

l_not_insert_order_line_flag BOOLEAN := FALSE;
Line: 8045

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

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

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

 	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: 8139

    l_not_insert_order_line_flag := TRUE;
Line: 8141

    l_not_insert_order_line_flag := FALSE;
Line: 8158

   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: 8211

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

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

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

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

            INSERT_LINES2
                (p_LINE_INDEX =>   G_LINE_INDEX_TBL,
                 p_LINE_TYPE_CODE =>  G_LINE_TYPE_CODE_TBL,
                 p_PRICING_EFFECTIVE_DATE =>G_PRICING_EFFECTIVE_DATE_TBL,
                 p_ACTIVE_DATE_FIRST       =>G_ACTIVE_DATE_FIRST_TBL,
                 p_ACTIVE_DATE_FIRST_TYPE  =>G_ACTIVE_DATE_FIRST_TYPE_TBL,
                 p_ACTIVE_DATE_SECOND      =>G_ACTIVE_DATE_SECOND_TBL,
                 p_ACTIVE_DATE_SECOND_TYPE =>G_ACTIVE_DATE_SECOND_TYPE_TBL,
                 p_LINE_QUANTITY =>     G_LINE_QUANTITY_TBL,
                 p_LINE_UOM_CODE =>     G_LINE_UOM_CODE_TBL,
                 p_REQUEST_TYPE_CODE => G_REQUEST_TYPE_CODE_TBL,
                 p_PRICED_QUANTITY =>   G_PRICED_QUANTITY_TBL,
                 p_PRICED_UOM_CODE =>   G_PRICED_UOM_CODE_TBL,
                 p_CURRENCY_CODE   =>   G_CURRENCY_CODE_TBL,
                 p_UNIT_PRICE      =>   G_UNIT_PRICE_TBL,
                 p_PERCENT_PRICE   =>   G_PERCENT_PRICE_TBL,
                 p_UOM_QUANTITY =>      G_UOM_QUANTITY_TBL,
                 p_ADJUSTED_UNIT_PRICE =>G_ADJUSTED_UNIT_PRICE_TBL,
                 p_UPD_ADJUSTED_UNIT_PRICE =>G_UPD_ADJUSTED_UNIT_PRICE_TBL,
                 p_PROCESSED_FLAG      =>G_PROCESSED_FLAG_TBL,
                 p_PRICE_FLAG          =>G_PRICE_FLAG_TBL,
                 p_LINE_ID             =>G_LINE_ID_TBL,
                 p_PROCESSING_ORDER    =>G_PROCESSING_ORDER_TBL,
                 p_PRICING_STATUS_CODE =>G_PRICING_STATUS_CODE_tbl,
                 p_PRICING_STATUS_TEXT =>G_PRICING_STATUS_TEXT_tbl,
                 p_ROUNDING_FLAG       =>G_ROUNDING_FLAG_TBL,
                 p_ROUNDING_FACTOR     =>G_ROUNDING_FACTOR_TBL,
                 p_QUALIFIERS_EXIST_FLAG => G_QUALIFIERS_EXIST_FLAG_TBL,
                 p_PRICING_ATTRS_EXIST_FLAG =>G_PRICING_ATTRS_EXIST_FLAG_TBL,
                 p_PRICE_LIST_ID          => G_PRICE_LIST_ID_TBL,
                 p_VALIDATED_FLAG         => G_PL_VALIDATED_FLAG_TBL,
                 p_PRICE_REQUEST_CODE     => G_PRICE_REQUEST_CODE_TBL,
		 p_USAGE_PRICING_TYPE  =>G_USAGE_PRICING_TYPE_tbl,
                 p_LINE_CATEGORY       =>G_LINE_CATEGORY_TBL,
                 p_CONTRACT_START_DATE =>G_CONTRACT_START_DATE_TBL, /* shulin */
                 p_CONTRACT_END_DATE =>G_CONTRACT_END_DATE_TBL, /* shulin */
                 p_LINE_UNIT_PRICE =>G_LINE_UNIT_PRICE_TBL, /* shu_latest */
		 p_LIST_PRICE_OVERRIDE_FLAG => G_LIST_PRICE_OVERRIDE_FLAG_TBL, -- po integration
                 p_CHARGE_PERIODICITY_CODE => G_CHARGE_PERIODICITY_CODE_TBL,
                 x_status_code         =>l_status_code,
                 x_status_text         =>l_status_text);
Line: 8328

      (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: 8376

           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: 8631

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: 8671

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

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

       (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: 8719

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

  G_SELECTED_VOLUME_ATTR_TBL(K) := null;
Line: 8751

  INSERT_LDETS2(
    p_LINE_DETAIL_index => G_LINE_DETAIL_INDEX_tbl,
    p_LINE_DETAIL_TYPE_CODE => G_LINE_DETAIL_TYPE_CODE_TBL,
    p_PRICE_BREAK_TYPE_CODE => G_PRICE_BREAK_TYPE_CODE_TBL,
    p_LIST_PRICE => G_LIST_PRICE_TBL,
    p_LINE_INDEX => G_LINE_INDEX_tbl,
    p_CREATED_FROM_LIST_HEADER_ID => G_LIST_HEADER_ID_tbl,
    p_CREATED_FROM_LIST_LINE_ID => G_LIST_LINE_ID_tbl,
    p_CREATED_FROM_LIST_LINE_TYPE => G_LIST_LINE_TYPE_TBL,
    p_CREATED_FROM_LIST_TYPE_CODE => G_LIST_TYPE_CODE_TBL,
    p_CREATED_FROM_SQL => G_CREATED_FROM_SQL_TBL,
    p_PRICING_GROUP_SEQUENCE => G_PRICING_GROUP_SEQUENCE_TBL,
    p_PRICING_PHASE_ID => G_PRICING_PHASE_ID_TBL,
    p_OPERAND_CALCULATION_CODE => G_OPERAND_CALCULATION_CODE_TBL,
    p_OPERAND_VALUE => G_OPERAND_VALUE_TBL,
    p_SUBSTITUTION_TYPE_CODE => G_SUBSTITUTION_TYPE_CODE_TBL,
    p_SUBSTITUTION_VALUE_FROM => G_SUBSTITUTION_VALUE_FROM_TBL,
    p_SUBSTITUTION_VALUE_TO => G_SUBSTITUTION_VALUE_TO_TBL,
    p_ASK_FOR_FLAG => G_ASK_FOR_FLAG_TBL,
    p_PRICE_FORMULA_ID => G_PRICE_FORMULA_ID_TBL,
    p_PRICING_STATUS_CODE => G_PRICING_STATUS_CODE_tbl,
    p_PRICING_STATUS_TEXT => G_PRICING_STATUS_TEXT_tbl,
    p_PRODUCT_PRECEDENCE => G_PRODUCT_PRECEDENCE_TBL,
    p_INCOMPATABLILITY_GRP_CODE => G_INCOMP_GRP_CODE_TBL,
    p_PROCESSED_FLAG => G_PROCESSED_FLAG_TBL,
    p_APPLIED_FLAG => G_APPLIED_FLAG_tbl,
    p_AUTOMATIC_FLAG => G_AUTOMATIC_FLAG_TBL,
    p_OVERRIDE_FLAG => G_OVERRIDE_FLAG_TBL,
    p_PRIMARY_UOM_FLAG => G_PRIMARY_UOM_FLAG_TBL,
    p_PRINT_ON_INVOICE_FLAG => G_PRINT_ON_INVOICE_FLAG_TBL,
    p_MODIFIER_LEVEL_CODE => G_MODIFIER_LEVEL_CODE_TBL,
    p_BENEFIT_QTY => G_BENEFIT_QTY_TBL,
    p_BENEFIT_UOM_CODE => G_BENEFIT_UOM_CODE_TBL,
    p_LIST_LINE_NO => G_LIST_LINE_NO_TBL,
    p_ACCRUAL_FLAG => G_ACCRUAL_FLAG_TBL,
    p_ACCRUAL_CONVERSION_RATE => G_ACCRUAL_CONVERSION_RATE_TBL,
    p_ESTIM_ACCRUAL_RATE => G_ESTIM_ACCRUAL_RATE_TBL,
    p_RECURRING_FLAG => G_RECURRING_FLAG_TBL,
    p_SELECTED_VOLUME_ATTR => G_SELECTED_VOLUME_ATTR_TBL,
    p_ROUNDING_FACTOR => G_ROUNDING_FACTOR_TBL,
    p_HEADER_LIMIT_EXISTS => G_HEADER_LIMIT_EXISTS_TBL,
    p_LINE_LIMIT_EXISTS => G_LINE_LIMIT_EXISTS_TBL,
    p_CHARGE_TYPE_CODE => G_CHARGE_TYPE_CODE_TBL,
    p_CHARGE_SUBTYPE_CODE => G_CHARGE_SUBTYPE_CODE_TBL,
    p_LINE_QUANTITY => G_LINE_QUANTITY_TBL,
    p_UPDATED_FLAG => G_UPDATED_FLAG_TBL,
    p_CALCULATION_CODE => G_CALCULATION_CODE_TBL,
    p_CHANGE_REASON_CODE =>G_CHANGE_REASON_CODE_TBL,
    p_CHANGE_REASON_TEXT => G_CHANGE_REASON_TEXT_TBL,
    p_PROCESS_CODE => G_PROCESS_CODE_TBL,
    x_status_code => l_status_code,
    x_status_text => l_status_text
  );
Line: 8808

/* end bulk insert ldets */


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

/* 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: 8914

  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: 8952

/* 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: 8984

  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: 8997

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

/* end bulk insert rltd lines */



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

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

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

    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: 9203

    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: 9227

    SELECT /*+ dynamic_sampling(1) */ QPLAT_PRICING.CONTEXT        PRICING_CONTEXT,
           QPLAT_PRICING.ATTRIBUTE      PRICING_ATTRIBUTE,
           nvl(QPLAT_PRICING.SETUP_VALUE_FROM,QPLAT_PRICING.VALUE_FROM)     PRICING_ATTR_VALUE_FROM,
           QPLAT_PRICING.SETUP_VALUE_TO       PRICING_ATTR_VALUE_TO,
           QPLAT_PRICING.COMPARISON_OPERATOR_TYPE_CODE,
           QPLAT_PRICING.LINE_DETAIL_INDEX,
           QPLAT_PRICING.LINE_INDEX,
           QPLAT_PRICING.VALIDATED_FLAG
     FROM  qp_npreq_ldets_tmp QPLD ,
           qp_npreq_line_attrs_tmp QPLAT_PRICING
     WHERE QPLD.LINE_DETAIL_INDEX = QPLAT_PRICING.LINE_DETAIL_INDEX
     AND   QPLD.PRICING_STATUS_CODE = G_STATUS_NEW
     AND   QPLAT_PRICING.ATTRIBUTE_TYPE IN ('PRICING','PRODUCT');
Line: 9251

    SELECT /*+ ORDERED USE_NL(A B C) l_ldets_cur */

           a.LINE_DETAIL_INDEX,
           a.LINE_DETAIL_TYPE_CODE,
           a.LINE_INDEX,
           a.CREATED_FROM_LIST_HEADER_ID LIST_HEADER_ID,
           a.CREATED_FROM_LIST_LINE_ID   LIST_LINE_ID,
           a.CREATED_FROM_LIST_LINE_TYPE LIST_LINE_TYPE_CODE,
           a.PRICE_BREAK_TYPE_CODE,
           a.LINE_QUANTITY,
           a.ADJUSTMENT_AMOUNT,
           a.AUTOMATIC_FLAG,
           a.PRICING_PHASE_ID,
           a.OPERAND_CALCULATION_CODE,
           a.OPERAND_VALUE,
           a.PRICING_GROUP_SEQUENCE,
           a.CREATED_FROM_LIST_TYPE_CODE,
           a.APPLIED_FLAG,
           a.PRICING_STATUS_CODE,
           a.PRICING_STATUS_TEXT,
           a.LIMIT_CODE,
           a.LIMIT_TEXT,
           a.LIST_LINE_NO,
           a.GROUP_QUANTITY,
           a.GROUP_AMOUNT, -- 2388011_new
           a.UPDATED_FLAG,
	   a.PROCESS_CODE,
	   a.CALCULATION_CODE,
	   a.CHANGE_REASON_CODE,
	   a.CHANGE_REASON_TEXT,
           b.SUBSTITUTION_VALUE SUBSTITUTION_VALUE_TO,
           b.SUBSTITUTION_ATTRIBUTE,
           b.ACCRUAL_FLAG,
           b.modifier_level_code,
           b.ESTIM_GL_VALUE,
           b.ACCRUAL_CONVERSION_RATE,
           --Pass throuh components
           b.OVERRIDE_FLAG,
           b.PRINT_ON_INVOICE_FLAG,
           b.INVENTORY_ITEM_ID,
           b.ORGANIZATION_ID,
           b.RELATED_ITEM_ID,
           b.RELATIONSHIP_TYPE_ID,
           b.ESTIM_ACCRUAL_RATE,
           b.EXPIRATION_DATE,
           b.BENEFIT_PRICE_LIST_LINE_ID,
           b.RECURRING_FLAG,
           b.RECURRING_VALUE,  --for block pricing bug 3657116
           b.BENEFIT_LIMIT,
           b.CHARGE_TYPE_CODE,
           b.CHARGE_SUBTYPE_CODE,
           b.BENEFIT_QTY,
           b.BENEFIT_UOM_CODE,
           b.PRORATION_TYPE_CODE,
           b.INCLUDE_ON_RETURNS_FLAG,
           b.REBATE_TRANSACTION_TYPE_CODE,
           b.NUMBER_EXPIRATION_PERIODS,
           b.EXPIRATION_PERIOD_UOM,
           b.COMMENTS,
           b.break_uom_code, /* proration */
           b.break_uom_context, /* proration */
           b.break_uom_attribute /* proration */
    FROM  qp_npreq_ldets_tmp a,
          QP_LIST_LINES     b
    WHERE a.CREATED_FROM_LIST_LINE_ID = b.LIST_LINE_ID
    AND   a.PRICING_STATUS_CODE = G_STATUS_NEW;
Line: 9322

    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: 9338

    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: 9376

    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: 9400

    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: 9424

    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: 9494

    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: 9547

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

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

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

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

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: 10129

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: 10151

l_deleted_flag         BOOLEAN := FALSE;
Line: 10167

	    l_deleted_flag = FALSE) THEN

   l_passed_value_from := NULL; -- Init
Line: 10170

   l_deleted_flag := FALSE;
Line: 10191

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

    l_deleted_flag := TRUE;
Line: 10222

  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: 10232

  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: 10243

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

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: 10304

/*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: 10319

   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: 10377

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

  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: 10400

    G_LINE_INDEX_TBL_G.delete;
Line: 10401

    G_UNIT_PRICE_TBL_G.delete;
Line: 10435

     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: 10483

     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: 10492

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

  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: 10598

  |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: 10612

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

  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: 10626

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: 10645

  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: 10666

		SELECT rounding_factor FROM qp_npreq_lines_tmp;
Line: 10680

                        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: 10697

			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: 10728

  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: 10754

END Update_Request_Line_Status;
Line: 10781

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: 10818

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: 10854

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: 10889

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: 10918

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: 10950

l_deleted_between       VARCHAR2(1);
Line: 10954

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

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

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

  l_deleted_between := 'F';
Line: 11039

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

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

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

      l_selected_volume_attr := G_QUANTITY;
Line: 11064

      l_selected_volume_attr := G_AMOUNT;
Line: 11066

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

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

    l_deleted_between := 'T';
Line: 11112

  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: 11143

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

    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: 11185

    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: 11203

  l_deleted_between := 'F';
Line: 11223

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

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

    l_deleted_between := 'T';
Line: 11278

  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: 11311

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

    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: 11369

    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: 11389

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

   SELECT /*+ ordered use_nl(qplines, qprm, qppa, qpll, qph, qcdt) */
       qpll.pricing_group_sequence,
       qpll.list_header_id,
       qppa.list_line_id,
       qppa.product_attribute_context,  --setup values
       qppa.product_attribute,
       qppa.product_attr_value,
       qppa.pricing_attribute_context,
       qppa.pricing_attribute,
       qppa.pricing_attr_value_from,
       qppa.pricing_attr_value_to,
       qppa.product_uom_code,
       qplat_pricing.value_from,
       qplat_pricing.attribute,
       nvl(qplines.priced_uom_code,qplines.line_uom_code) line_uom_code,
       qplines.line_uom_code order_uom_code, -- shulin, for total_item_quantity uom conversion
       qplines.line_index,
       nvl(qplines.priced_quantity,qplines.line_quantity) line_quantity,
       qpll.list_line_type_code,
       qpll.modifier_level_code,
       qpll.benefit_qty,
       qpll.benefit_uom_code,
       qpll.list_line_no,
       qpll.accrual_flag,
       qpll.accrual_conversion_rate,
       qpll.estim_accrual_rate,
       qpll.recurring_value, -- block pricing
       qpll.arithmetic_operator,
       qpll.operand,
       qpll.list_price,
       qpll.pricing_phase_id,
       qpll.automatic_flag,
       qpll.price_break_type_code,
       qpll.incompatibility_GRP_CODE,
       qpll.override_flag,
       qpll.print_on_invoice_flag,
       qpll.price_by_formula_id,
       qpll.product_precedence,
       nvl(qplines.usage_pricing_type,G_REGULAR_USAGE_TYPE) usage_pricing_type,
       QCDT.ROUNDING_FACTOR, /* vivek */
       QCDT.CURRENCY_DETAIL_ID,  /* sunilpandey */
       QCDT.CURRENCY_HEADER_ID,  /* vivek */
       QCDT.SELLING_ROUNDING_FACTOR,  /* vivek */
       QPLINES.CURRENCY_CODE   ORDER_CURRENCY,  /* vivek */
       QPLINES.PRICING_EFFECTIVE_DATE,  /* vivek */
       QPH.CURRENCY_CODE   BASE_CURRENCY_CODE,  /* vivek */
       qplines.contract_start_date, -- R12 partial period pricing
       qplines.contract_end_date    -- R12 partial period pricing
   FROM
       qp_npreq_line_attrs_tmp qplat_pricing,
       qp_npreq_lines_tmp      qplines,
       qp_rltd_modifiers qprm,
       qp_pricing_attributes  qppa,
       qp_list_lines          qpll
      ,qp_list_headers_b qph   /* Vivek */
      ,qp_currency_details qcdt /* Vivek */
   WHERE qprm.from_rltd_modifier_id = p_list_line_id
   AND   qprm.to_rltd_modifier_id = qppa.list_line_id
   AND   qppa.list_line_id = qpll.list_line_id
   AND   qplat_pricing.context = G_PRIC_VOLUME_CONTEXT
   AND   qppa.pricing_attribute_context = G_PRIC_VOLUME_CONTEXT
   AND   qplat_pricing.attribute = qppa.pricing_attribute
   AND   qplat_pricing.attribute_type = G_PRICING_TYPE
   AND   qplat_pricing.line_index = qplines.line_index
   AND   qplat_pricing.pricing_status_code = G_STATUS_UNCHANGED
   AND   qplat_pricing.line_index = p_line_index
-- and   qp_number.canonical_to_number(qplat_pricing.value_from) <> 0 -- 5158413
-- commented above for bug#6896139 as fix for bug#5158413 did not consider for G_LINE_GROUP,lines with line qty as 0
--(i.e qplat_pricing.value_from=0) even when the qualifier group count for G_LINE_GROUP was greater than zero
   and   qpll.list_header_id = qph.list_header_id /* Vivek */
   and   QPH.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID /* Vivek */
            AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE  /* Vivek */
            AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN   /* Vivek */
                NVL(TRUNC(QCDT.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
                AND NVL(TRUNC(QCDT.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
   AND (   /* Vivek */
        (qcdt.curr_attribute_context is null   /* Vivek */
         and not exists   /* Vivek */
             (select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x'   --[julin/5139512/4744915]
               from qp_npreq_line_attrs_tmp pa_tmp,   qp_currency_details qcdt1 /* Vivek */
               where qcdt1.curr_attribute_context IS NOT NULL  /* Vivek */
                 and qcdt1.curr_attribute_context = pa_tmp.context   /* Vivek */
                 and qcdt1.curr_attribute = pa_tmp.attribute   /* Vivek */
                 and qcdt1.curr_attribute_value = pa_tmp.value_from   /* Vivek */
                 and qcdt1.curr_attribute_type = pa_tmp.ATTRIBUTE_TYPE   /* Vivek */
                 and qcdt1.to_currency_code = qcdt.to_currency_code   /* Vivek */
                 and qcdt1.currency_header_id = qcdt.currency_header_id   /* Vivek */
                 and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED   /* Vivek */
                 and pa_tmp.line_index = qplines.line_index   /* Vivek */
                 AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN   /* Vivek */
                     NVL(TRUNC(QCDT1.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
                     AND NVL(TRUNC(QCDT1.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
             )   /* Vivek */
        )   /* Vivek */
        OR   /* Vivek */
        (qcdt.curr_attribute_context is not null   /* Vivek */
         and qcdt.precedence =
             (select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
               from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2  /* Vivek */
               where qcdt2.curr_attribute_context IS NOT NULL   /* Vivek */
                 and qcdt2.curr_attribute_context = pa_tmp1.context   /* Vivek */
                 and qcdt2.curr_attribute = pa_tmp1.attribute   /* Vivek */
                 and qcdt2.curr_attribute_value = pa_tmp1.value_from   /* Vivek */
                 and qcdt2.curr_attribute_type = pa_tmp1.ATTRIBUTE_TYPE   /* Vivek */
                 and qcdt2.to_currency_code = qcdt.to_currency_code   /* Vivek */
                 and qcdt2.currency_header_id = qcdt.currency_header_id   /* Vivek */
                 and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED   /* Vivek */
                 and pa_tmp1.line_index = qplines.line_index   /* Vivek */
                 AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN   /* Vivek */
                     NVL(TRUNC(QCDT2.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
                     AND NVL(TRUNC(QCDT2.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
             )   /* Vivek */
        )   /* Vivek */
       )   /* Vivek */
   and (( (p_reduced_pbh_processing = G_YES) --[julin/3783009/4712794]
         and (nvl(qplines.usage_pricing_type,G_REGULAR_USAGE_TYPE) <> G_AUTHORING_TYPE)
         and ( (qpll.price_break_type_code = G_POINT_BREAK and qp_number.canonical_to_number(qplat_pricing.value_from)
                                                       between qp_number.canonical_to_number(qppa.pricing_attr_value_from)
                                                           and qp_number.canonical_to_number(qppa.pricing_attr_value_to)
               ) OR
               (qpll.price_break_type_code = G_RANGE_BREAK and qp_number.canonical_to_number(qppa.pricing_attr_value_from)
                                                          <= qp_number.canonical_to_number(qplat_pricing.value_from)
               )
             )
        )
       or
        (p_reduced_pbh_processing = G_NO)
       )
   ORDER BY qp_number.canonical_to_number(qppa.pricing_attr_value_from);  --bug#1819397
Line: 11569

   SELECT /*+ ordered use_nl(qplines, qprm, qppa, qpll) */
       qpll.pricing_group_sequence,
       qpll.list_header_id,
       qppa.list_line_id,
       qppa.product_attribute_context,  --setup values
       qppa.product_attribute,
       qppa.product_attr_value,
       qppa.pricing_attribute_context,
       qppa.pricing_attribute,
       qppa.pricing_attr_value_from,
       qppa.pricing_attr_value_to,
       qppa.product_uom_code,
       qplat_pricing.value_from,
       qplat_pricing.attribute,
       nvl(qplines.priced_uom_code,qplines.line_uom_code) line_uom_code,
       qplines.line_uom_code order_uom_code, -- shulin, for total_item_quantity uom conversion
       qplines.line_index,
       nvl(qplines.priced_quantity,qplines.line_quantity) line_quantity,
       qpll.list_line_type_code,
       qpll.modifier_level_code,
       qpll.benefit_qty,
       qpll.benefit_uom_code,
       qpll.list_line_no,
       qpll.accrual_flag,
       qpll.accrual_conversion_rate,
       qpll.estim_accrual_rate,
       qpll.recurring_value, -- block pricing
       qpll.arithmetic_operator,
       qpll.operand,
       qpll.list_price,
       qpll.pricing_phase_id,
       qpll.automatic_flag,
       qpll.price_break_type_code,
       qpll.incompatibility_GRP_CODE,
       qpll.override_flag,
       qpll.print_on_invoice_flag,
       qpll.price_by_formula_id,
       qpll.product_precedence,
       nvl(qplines.usage_pricing_type,G_REGULAR_USAGE_TYPE) usage_pricing_type,
       NULL ROUNDING_FACTOR, /* vivek */
       NULL CURRENCY_DETAIL_ID,  /* sunilpandey */
       NULL CURRENCY_HEADER_ID,  /* vivek */
       NULL SELLING_ROUNDING_FACTOR,  /* vivek */
       NULL ORDER_CURRENCY,  /* vivek */
       NULL PRICING_EFFECTIVE_DATE,  /* vivek */
       NULL BASE_CURRENCY_CODE,  /* vivek */
       qplines.contract_start_date, -- R12 partial period pricing
       qplines.contract_end_date    -- R12 partial period pricing
   FROM
       qp_npreq_line_attrs_tmp qplat_pricing,
       qp_npreq_lines_tmp      qplines,
       qp_rltd_modifiers qprm,
       qp_pricing_attributes  qppa,
       qp_list_lines          qpll
   WHERE qprm.from_rltd_modifier_id = p_list_line_id
   AND   qprm.to_rltd_modifier_id = qppa.list_line_id
   AND   qppa.list_line_id = qpll.list_line_id
   AND   qplat_pricing.context = G_PRIC_VOLUME_CONTEXT
   AND   qppa.pricing_attribute_context = G_PRIC_VOLUME_CONTEXT
   AND   qplat_pricing.attribute = qppa.pricing_attribute
   AND   qplat_pricing.attribute_type = G_PRICING_TYPE
   AND   qplat_pricing.line_index = qplines.line_index
   AND   qplat_pricing.pricing_status_code = G_STATUS_UNCHANGED
   AND   qplat_pricing.line_index = p_line_index
-- and   qp_number.canonical_to_number(qplat_pricing.value_from) <> 0 -- 5158413
-- commented above for bug#6896139 as fix for bug#5158413 did not consider for G_LINE_GROUP,lines with line qty as 0
--(i.e qplat_pricing.value_from=0) even when the qualifier group count for G_LINE_GROUP was greater than zero
   and (( (p_reduced_pbh_processing = G_YES) --[julin/3783009/4712794]
          and (nvl(qplines.usage_pricing_type,G_REGULAR_USAGE_TYPE) <> G_AUTHORING_TYPE)
          and ( (qpll.price_break_type_code = G_POINT_BREAK and qp_number.canonical_to_number(qplat_pricing.value_from)
                                                        between qp_number.canonical_to_number(qppa.pricing_attr_value_from)
                                                            and qp_number.canonical_to_number(qppa.pricing_attr_value_to)
                ) OR
                (qpll.price_break_type_code = G_RANGE_BREAK and qp_number.canonical_to_number(qppa.pricing_attr_value_from)
                                                           <= qp_number.canonical_to_number(qplat_pricing.value_from)
                )
              )
        )
       or
        (p_reduced_pbh_processing = G_NO)
       )
   ORDER BY qp_number.canonical_to_number(qppa.pricing_attr_value_from);  --bug#1819397
Line: 11653

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

l_selected_volume_attr VARCHAR2(1);
Line: 11736

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

        l_selected_volume_attr := G_QUANTITY;
Line: 11938

        l_selected_volume_attr := G_AMOUNT;
Line: 11956

       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: 11976

        l_selected_volume_attr := G_QUANTITY;
Line: 12024

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

        l_selected_volume_attr := G_AMOUNT;
Line: 12042

       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: 12103

          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: 12130

              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: 12159

                 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: 12511

         l_l_selected_volume_attr_tbl(i)   := l_selected_volume_attr;
Line: 12552

                engine_debug('Inserting line_detail');
Line: 12558

        INSERT INTO qp_npreq_ldets_tmp
                (LINE_DETAIL_INDEX,
                 LINE_DETAIL_TYPE_CODE,
                 PRICE_BREAK_TYPE_CODE,
                 LINE_INDEX,
                 CREATED_FROM_LIST_HEADER_ID,
                 CREATED_FROM_LIST_LINE_ID,
                 CREATED_FROM_LIST_LINE_TYPE,
                 CREATED_FROM_LIST_TYPE_CODE,
                 PRICING_GROUP_SEQUENCE,
                 PRICING_PHASE_ID,
                 OPERAND_CALCULATION_CODE,
                 OPERAND_VALUE,
                 PRICE_FORMULA_ID,
                 PRICING_STATUS_CODE,
                 PROCESSED_FLAG,
                 AUTOMATIC_FLAG,
                 OVERRIDE_FLAG,
                 PRINT_ON_INVOICE_FLAG,
                 MODIFIER_LEVEL_CODE,
                 BENEFIT_QTY,
                 BENEFIT_UOM_CODE,
                 LIST_LINE_NO,
                 ACCRUAL_FLAG,
                 ACCRUAL_CONVERSION_RATE,
                 ESTIM_ACCRUAL_RATE,
                 RECURRING_VALUE,
                 SELECTED_VOLUME_ATTR,
                 GROUP_QUANTITY,
                 GROUP_AMOUNT,
                 ROUNDING_FACTOR,
                 CURRENCY_DETAIL_ID,
                 CURRENCY_HEADER_ID,
                 SELLING_ROUNDING_FACTOR,
                 ORDER_CURRENCY,
                 PRICING_EFFECTIVE_DATE,
                 BASE_CURRENCY_CODE
                 )
        VALUES (l_l_line_detail_index_tbl(i),
              l_l_G_CHILD_DETAIL_TYPE_tbl(i),
              l_h_price_break_type_code_tbl(i),
              l_l_p_line_index_tbl(i),
              l_h_list_header_id_tbl(i),
              l_h_list_line_id_tbl(i),
              l_h_list_line_type_code_tbl(i),
              l_l_list_type_code_tbl(i),
              l_h_pricing_group_sequence_tbl(i),
              l_h_pricing_phase_id_tbl(i),
              l_h_arithmetic_operator_tbl(i),
              l_h_operand_tbl(i),
              l_h_price_by_formula_id_tbl(i),
              l_l_G_STATUS_NEW_tbl(i),
              l_l_G_NOT_PROCESSED_tbl(i),
              l_h_automatic_flag_tbl(i),
              l_h_override_flag_tbl(i),
              l_h_print_on_invoice_flag_tbl(i),
              l_h_modifier_level_code_tbl(i),
              l_h_BENEFIT_QTY_tbl(i),
              l_h_BENEFIT_UOM_CODE_tbl(i),
              l_h_LIST_LINE_NO_tbl(i),
              l_h_ACCRUAL_FLAG_tbl(i),
              l_h_accrual_conv_rate_tbl(i),
              l_h_ESTIM_ACCRUAL_RATE_tbl(i),
              l_h_RECURRING_VALUE_tbl(i), -- block pricing
              l_l_selected_volume_attr_tbl(i),
              l_l_group_quantity_tbl(i),
              l_l_group_amount_tbl(i),
              l_h_ROUNDING_FACTOR_tbl(i),
              l_h_CURRENCY_DETAIL_ID_tbl(i),
              l_h_CURRENCY_HEADER_ID_tbl(i),
              l_h_selling_round_factor_tbl(i),
              l_h_ORDER_CURRENCY_tbl(i),
              l_h_PRICING_EFFECTIVE_DATE_tbl(i),
              l_h_BASE_CURRENCY_CODE_tbl(i)
             );
Line: 12641

    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: 12652

        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: 12690

        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: 12803

  |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: 12826

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

  engine_debug('in Delete_Invalid_PBH_Children');
Line: 12831

  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: 12845

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: 12860

END Delete_Invalid_PBH_Children;
Line: 12887

     SELECT created_from_list_header_id list_header_id , created_from_list_line_id list_line_id,
            group_quantity ,group_amount, line_detail_index, line_index, line_quantity -- 2388011, pbh_grp_lines
            , created_from_list_type_code
     FROM   qp_npreq_ldets_tmp  a
     WHERE  created_from_list_line_type = G_PRICE_BREAK_TYPE
     AND    pricing_status_code = G_STATUS_NEW
     AND    pricing_phase_id = p_pricing_phase_id
     AND    nvl(processed_flag,G_NOT_PROCESSED) = G_NOT_PROCESSED;
Line: 12929

  G_LIST_HEADER_ID_TBL_G.delete;
Line: 12930

  G_LIST_LINE_ID_TBL_G.delete;
Line: 12931

  G_GROUP_QUANTITY_TBL_G.delete;
Line: 12932

  G_GROUP_AMOUNT_TBL_G.delete;
Line: 12933

  G_LINE_DETAIL_INDEX_TBL_G.delete;
Line: 12934

  G_LINE_INDEX_TBL_G.delete;
Line: 12935

  G_LINE_QUANTITY_TBL_G.delete;
Line: 12936

  G_LIST_TYPE_CODE_TBL_G.delete;
Line: 12988

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

  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: 13049

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: 13078

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: 13103

SELECT COUNT(*) NO_OF_QUALIFIERS_IN_GRP
FROM   QP_QUALIFIERS a , QP_LIST_HEADERS_B b
WHERE  a.LIST_HEADER_ID = p_list_header_id
AND    a.list_line_id = -1
AND    a.QUALIFIER_CONTEXT = 'MODLIST'
AND    a.QUALIFIER_ATTRIBUTE = 'QUALIFIER_ATTRIBUTE4'
AND    a.LIST_HEADER_ID = b.LIST_HEADER_ID
AND    b.LIST_TYPE_CODE IN ('AGR', 'PRL') ;
Line: 13122

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: 13139

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: 13155

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

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

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: 13196

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

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: 13231

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: 13247

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: 13261

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

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

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: 13320

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: 13333

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: 13348

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: 13364

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

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: 13400

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: 13423

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: 13447

SELECT 1
FROM DUAL
WHERE EXISTS
(SELECT 'x'
FROM   QP_PREQ_LINE_ATTRS_TMP
WHERE  LINE_INDEX = p_line_index
AND    LIST_HEADER_ID = p_list_header_id
AND    LIST_LINE_ID = p_list_line_id
AND    PRICING_STATUS_CODE = G_DELETED_BETWEEN
AND    ATTRIBUTE_TYPE = G_PRICING_TYPE);
Line: 13459

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: 13501

l_deleted_flag               BOOLEAN:= FALSE;
Line: 13599

	   -- 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: 13646

       l_deleted_flag := FALSE;
Line: 13659

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

                      l_deleted_flag := TRUE;
Line: 13694

       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: 13747

	      -- 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: 13799

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

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

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

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

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

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

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

   UPDATE qp_npreq_ldets_tmp --upd1
   SET PRICING_STATUS_CODE = G_DELETED_GRP,
       PRICING_STATUS_TEXT = 'Deleted in header+/-line grouping'
   WHERE line_detail_index = l_del_tbl(i);
Line: 13892

   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: 13905

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

   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: 13917

 l_del_tbl.delete;
Line: 13918

 l_success_tbl.delete;
Line: 13984

	      -- 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: 14031

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

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

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

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

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

   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: 14108

   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: 14131

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

   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: 14143

 l_del_tbl.delete;
Line: 14144

 l_success_tbl.delete;
Line: 14156

  G_LIST_HEADER_ID_TBL_G.delete;
Line: 14157

  G_LIST_LINE_ID_TBL_G.delete;
Line: 14158

  G_LINE_INDEX_TBL_G.delete;
Line: 14159

  G_NO_OF_PATTS_IN_GRP_TBL_G.delete;
Line: 14187

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

       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: 14205

       /* 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: 14210

       /* 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: 14230

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

       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: 14247

       /* 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: 14252

       /* 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: 14267

  /* 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: 14273

  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: 14292

  | 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: 14308

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

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: 14331

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

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: 14367

engine_debug ('after update2');
Line: 14373

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

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

  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: 14391

  engine_debug ('after update3');
Line: 14395

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: 14414

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: 14429

  engine_debug ('after update4');
Line: 14436

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

END Update_Price_List_Information;
Line: 14444

  | 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: 14454

INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_upd1,-No Index Used-,NA,NA
*/
/*
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel1,QP_QUALIFIERS_N1,LIST_HEADER_ID,1

INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel1,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel1,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel1,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.update_sec_price_list_info.update_sec_price_list_info_sel1,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6
*/
UPDATE qp_npreq_lines_tmp c
SET primary_qualifiers_match_flag = 'Y'
WHERE EXISTS(
SELECT 'x'
FROM  QP_QUALIFIERS a,
      qp_npreq_line_attrs_tmp b
WHERE b.CONTEXT = a.QUALIFIER_CONTEXT
AND   b.ATTRIBUTE = a.QUALIFIER_ATTRIBUTE
AND   b.VALUE_FROM = a.QUALIFIER_ATTR_VALUE
AND   b.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND   a.COMPARISON_OPERATOR_CODE = '='
AND   b.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
AND   trunc(c.pricing_effective_date) BETWEEN trunc(NVL(a.START_DATE_ACTIVE, c.pricing_effective_date))
                                      AND     trunc(NVL(a.END_DATE_ACTIVE,c.pricing_effective_date))
AND   a.LIST_HEADER_ID = c.PRICE_LIST_HEADER_ID
AND   a.ACTIVE_FLAG = G_YES
AND   b.LINE_INDEX = c.LINE_INDEX
AND   c.VALIDATED_FLAG = G_NO)
AND   c.VALIDATED_FLAG = G_NO;
Line: 14487

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: 14517

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: 14543

END Update_Sec_Price_List_Info;
Line: 14593

SELECT /*+ ORDERED USE_NL(QPQ QPLAT_PROD QPA QPL QPH) INDEX(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n2) l_sec_list_cur */
                   QPLAT_PROD.LINE_INDEX,
                   QPL.LIST_LINE_ID,
                   QPL.ARITHMETIC_OPERATOR,
                   QPL.OPERAND,
                   QPL.PRICING_GROUP_SEQUENCE,
                   QPL.LIST_LINE_TYPE_CODE,
                   QPL.PRICING_PHASE_ID,
                   QPL.AUTOMATIC_FLAG,
                   QPL.INCOMPATIBILITY_GRP_CODE,
                   QPL.PRICE_BY_FORMULA_ID,
                   QPL.PRODUCT_PRECEDENCE,
                   QPL.PRIMARY_UOM_FLAG,
                   QPL.MODIFIER_LEVEL_CODE,
                   QPL.LIST_LINE_NO,
                   QPA.PRODUCT_UOM_CODE,
                   QPA.EXCLUDER_FLAG,
                   QPH.LIST_TYPE_CODE,
                   QPH.ROUNDING_FACTOR,
                   QPLAT_PROD.LINE_DETAIL_INDEX,
                   QPH.LIST_HEADER_ID           LIST_HEADER_ID,
                   QPLAT_PROD.CONTEXT         PRODUCT_ATTRIBUTE_CONTEXT,
                   QPLAT_PROD.ATTRIBUTE       PRODUCT_ATTRIBUTE,
                   QPLAT_PROD.VALUE_FROM      PRODUCT_ATTR_VALUE_FROM,
                   QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
                   QPLAT_PROD.ATTRIBUTE_TYPE  PRODUCT_ATTRIBUTE_TYPE,
                   QPLAT_PROD.APPLIED_FLAG,
                   NULL                      PRODUCT_OPERATOR_TYPE,
                   NULL                      PRICING_ATTRIBUTE_CONTEXT,
                   NULL                      PRICING_ATTRIBUTE,
                   NULL                      PRICING_ATTR_VALUE_FROM,
                   NULL                      PRICING_SETUP_VALUE_FROM,
                   NULL                      PRICING_SETUP_VALUE_TO,
                   NULL                      PRICING_ATTRIBUTE_LEVEL,
                   NULL                      PRICING_ATTRIBUTE_TYPE,
                   NULL                      PRICING_OPERATOR_TYPE,
                   NULL                      PRICING_ATTRIBUTE_DATATYPE,
                   NULL                      QUALIFIER_ATTRIBUTE_CONTEXT,
                   NULL                      QUALIFIER_ATTRIBUTE,
                   NULL                      QUALIFIER_ATTR_VALUE_FROM,
                   NULL                      QUALIFIER_PRICING_ATTR_FLAG,
                   to_number(NULL)           QUALIFIER_GROUPING_NO,
                   NULL                      QUALIFIER_DATATYPE,
                   NULL                      SETUP_VALUE_FROM,
                   NULL                      SETUP_VALUE_TO,
                   NULL                      QUALIFIER_OPERATOR_TYPE,
                   QPQ.QUALIFIER_PRECEDENCE  QUALIFIER_PRECEDENCE
                  ,QPL.BREAK_UOM_CODE /* Proration */
                  ,QPL.BREAK_UOM_CONTEXT /* Proration */
                  ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
                  ,NULL QUALIFIER_TYPE -- 3863226
                  ,QPLAT_PROD.DERIVED_QUALIFIER_FLAG  -- Added for TCA
   FROM
         qp_npreq_lines_tmp QPLINES,
         QP_QUALIFIERS QPQ,
	 qp_npreq_line_attrs_tmp QPLAT_PROD,
         QP_PRICING_ATTRIBUTES QPA,
         QP_LIST_LINES QPL,
         QP_LIST_HEADERS_B QPH,
         --QP_PRICE_REQ_SOURCES QPRS
         QP_PRICE_REQ_SOURCES_V QPRS /*yangli*/
   WHERE QPQ.QUALIFIER_CONTEXT = G_LIST_HEADER_CONTEXT
   AND   QPQ.QUALIFIER_ATTRIBUTE = G_PRICELIST_ATTRIBUTE
   AND   QPQ.QUALIFIER_ATTR_VALUE = to_char(QPLINES.PRICE_LIST_HEADER_ID)
   AND   QPQ.COMPARISON_OPERATOR_CODE = '='
   AND   QPQ.LIST_TYPE_CODE = 'PRL'             --3965947
   AND   QPQ.LIST_HEADER_ID = QPA.LIST_HEADER_ID
   AND   QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
   AND   QPA.QUALIFICATION_IND IN ( QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_IND)
   AND   QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
   AND   (QPLINES.PRICE_FLAG = G_YES
          OR
         (QPLINES.PRICE_FLAG = G_PHASE
          AND
          P_FREEZE_OVERRIDE_FLAG = G_YES))
   AND   QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
   AND   QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
   AND   (QPLINES.VALIDATED_FLAG = G_YES
             OR
         ((QPLINES.VALIDATED_FLAG = G_NO AND
         QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES)
             OR
         QPLINES.QUALIFIERS_EXIST_FLAG = G_NO) AND
         (G_QUALIFY_SECONDARY = G_NO
          OR
          QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_IND
         ))
   AND   QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
   AND   QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
   AND   QPA.EXCLUDER_FLAG = G_NO
   AND   QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
   AND   QPL.LIST_HEADER_ID = QPH.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--   AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
   AND    QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE
   --AND   (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
   --       OR
   --       QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
   AND   QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
   AND   QPLINES.REQUEST_TYPE_CODE   = QPRS.REQUEST_TYPE_CODE
   AND   QPH.ACTIVE_FLAG = G_YES
   AND   QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
   AND   QPQ.ACTIVE_FLAG = G_YES
   AND   QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
         NVL(QPQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
         AND NVL(QPQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
   AND   QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
   --AND   QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
   AND   QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   AND   QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
   AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
UNION ALL
SELECT /*+ ORDERED USE_NL(QPQ QPLAT_PROD QPA QPLAT_PRIC QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n2) index(qplat_pric qp_preq_line_attrs_tmp_n2) l_sec_list_cur */
                   QPLAT_PROD.LINE_INDEX,
                   QPL.LIST_LINE_ID,
                   QPL.ARITHMETIC_OPERATOR,
                   QPL.OPERAND,
                   QPL.PRICING_GROUP_SEQUENCE,
                   QPL.LIST_LINE_TYPE_CODE,
                   QPL.PRICING_PHASE_ID,
                   QPL.AUTOMATIC_FLAG,
                   QPL.INCOMPATIBILITY_GRP_CODE,
                   QPL.PRICE_BY_FORMULA_ID,
                   QPL.PRODUCT_PRECEDENCE,
                   QPL.PRIMARY_UOM_FLAG,
                   QPL.MODIFIER_LEVEL_CODE,
                   QPL.LIST_LINE_NO,
                   QPA.PRODUCT_UOM_CODE,
                   QPA.EXCLUDER_FLAG,
                   QPH.LIST_TYPE_CODE,
                   QPH.ROUNDING_FACTOR,
                   QPLAT_PROD.LINE_DETAIL_INDEX,
                   QPH.LIST_HEADER_ID           LIST_HEADER_ID,
                   QPLAT_PROD.CONTEXT         PRODUCT_ATTRIBUTE_CONTEXT,
                   QPLAT_PROD.ATTRIBUTE       PRODUCT_ATTRIBUTE,
                   QPLAT_PROD.VALUE_FROM      PRODUCT_ATTR_VALUE_FROM,
                   QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
                   QPLAT_PROD.ATTRIBUTE_TYPE  PRODUCT_ATTRIBUTE_TYPE,
                   QPLAT_PROD.APPLIED_FLAG,
                   NULL                            PRODUCT_OPERATOR_TYPE,
                   QPLAT_PRIC.CONTEXT              PRICING_ATTRIBUTE_CONTEXT,
                   QPLAT_PRIC.ATTRIBUTE            PRICING_ATTRIBUTE,
                   QPLAT_PRIC.VALUE_FROM           PRICING_ATTR_VALUE_FROM,
                   QPA.PRICING_ATTR_VALUE_FROM     PRICING_SETUP_VALUE_FROM,
                   QPA.PRICING_ATTR_VALUE_TO       PRICING_SETUP_VALUE_TO,
                   QPLAT_PRIC.ATTRIBUTE_LEVEL      PRICING_ATTRIBUTE_LEVEL,
                   QPLAT_PRIC.ATTRIBUTE_TYPE       PRICING_ATTRIBUTE_TYPE,
                   QPA.COMPARISON_OPERATOR_CODE    PRICING_OPERATOR_TYPE,
                   QPA.PRICING_ATTRIBUTE_DATATYPE   PRICING_ATTRIBUTE_DATATYPE,
                   NULL                      QUALIFIER_ATTRIBUTE_CONTEXT,
                   NULL                      QUALIFIER_ATTRIBUTE,
                   NULL                      QUALIFIER_ATTR_VALUE_FROM,
                   NULL                      QUALIFIER_PRICING_ATTR_FLAG,
                   to_number(NULL)           QUALIFIER_GROUPING_NO,
                   NULL                      QUALIFIER_DATATYPE,
                   NULL                      SETUP_VALUE_FROM,
                   NULL                      SETUP_VALUE_TO,
                   NULL                      QUALIFIER_OPERATOR_TYPE,
                   QPQ.QUALIFIER_PRECEDENCE  QUALIFIER_PRECEDENCE
                  ,QPL.BREAK_UOM_CODE /* Proration */
                  ,QPL.BREAK_UOM_CONTEXT /* Proration */
                  ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
                  ,NULL QUALIFIER_TYPE -- 3863226
                  ,QPLAT_PRIC.DERIVED_QUALIFIER_FLAG  -- Added for TCA
   FROM
         qp_npreq_lines_tmp qplines,
         QP_QUALIFIERS qpq,
         qp_npreq_line_attrs_tmp qplat_prod,
         QP_PRICING_ATTRIBUTES qpa,
         qp_npreq_line_attrs_tmp qplat_pric,
         QP_LIST_LINES qpl,
         QP_LIST_HEADERS_B qph,
         --QP_PRICE_REQ_SOURCES qprs
         QP_PRICE_REQ_SOURCES_V qprs /* yangli */
   WHERE QPQ.QUALIFIER_CONTEXT = G_LIST_HEADER_CONTEXT
   AND   QPQ.QUALIFIER_ATTRIBUTE = G_PRICELIST_ATTRIBUTE
   AND   QPQ.QUALIFIER_ATTR_VALUE = to_char(QPLINES.PRICE_LIST_HEADER_ID)
   AND   QPQ.COMPARISON_OPERATOR_CODE = '='
   AND   QPQ.LIST_TYPE_CODE = 'PRL'             --3965947
   AND   QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
   AND   QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_PRIC_IND)
   AND   QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
   AND   (QPLINES.PRICE_FLAG = G_YES
          OR
         (QPLINES.PRICE_FLAG = G_PHASE
          AND
          P_FREEZE_OVERRIDE_FLAG = G_YES))
   AND   QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
   AND   QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
   AND   ((QPLINES.VALIDATED_FLAG = G_YES
             OR
         (QPLINES.VALIDATED_FLAG = G_NO AND
         QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES)
             OR
         QPLINES.QUALIFIERS_EXIST_FLAG = G_NO) AND
         (G_QUALIFY_SECONDARY = G_NO
          OR
          QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_IND
         ))
   AND   QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
   AND   QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
   AND   QPA.EXCLUDER_FLAG = G_NO
   AND   QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   AND   QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
   AND   QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
   AND   (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
          OR
          QPA.COMPARISON_OPERATOR_CODE IN ('NOT =', G_OPERATOR_BETWEEN))
   AND   QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
   AND   QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   AND   QPLAT_PRIC.LINE_INDEX = QPLAT_PROD.LINE_INDEX
   AND   QPA.LIST_HEADER_ID = QPQ.LIST_HEADER_ID
   AND   QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
   AND   QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--   AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
   AND    QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE
   --AND   (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
   --       OR
   --       QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
   AND   QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
   AND   QPLINES.REQUEST_TYPE_CODE   = QPRS.REQUEST_TYPE_CODE
   AND   QPH.ACTIVE_FLAG = G_YES
   AND   QPQ.ACTIVE_FLAG = G_YES
   AND   QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
   AND   QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
   --AND   QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
   AND   QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
   AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
UNION ALL
SELECT /*+ ORDERED USE_NL(QPQ QPLAT_PROD QPA QPL QPH) INDEX(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n2) l_sec_list_cur */
                   QPLAT_PROD.LINE_INDEX,
                   QPL.LIST_LINE_ID,
                   QPL.ARITHMETIC_OPERATOR,
                   QPL.OPERAND,
                   QPL.PRICING_GROUP_SEQUENCE,
                   QPL.LIST_LINE_TYPE_CODE,
                   QPL.PRICING_PHASE_ID,
                   QPL.AUTOMATIC_FLAG,
                   QPL.INCOMPATIBILITY_GRP_CODE,
                   QPL.PRICE_BY_FORMULA_ID,
                   QPL.PRODUCT_PRECEDENCE,
                   QPL.PRIMARY_UOM_FLAG,
                   QPL.MODIFIER_LEVEL_CODE,
                   QPL.LIST_LINE_NO,
                   QPA.PRODUCT_UOM_CODE,
                   QPA.EXCLUDER_FLAG,
                   QPH.LIST_TYPE_CODE,
                   QPH.ROUNDING_FACTOR,
                   QPLAT_PROD.LINE_DETAIL_INDEX,
                   QPH.LIST_HEADER_ID           LIST_HEADER_ID,
                   QPLAT_PROD.CONTEXT         PRODUCT_ATTRIBUTE_CONTEXT,
                   QPLAT_PROD.ATTRIBUTE       PRODUCT_ATTRIBUTE,
                   QPLAT_PROD.VALUE_FROM      PRODUCT_ATTR_VALUE_FROM,
                   QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
                   QPLAT_PROD.ATTRIBUTE_TYPE  PRODUCT_ATTRIBUTE_TYPE,
                   QPLAT_PROD.APPLIED_FLAG,
                   NULL                      PRODUCT_OPERATOR_TYPE,
                   NULL                      PRICING_ATTRIBUTE_CONTEXT,
                   NULL                      PRICING_ATTRIBUTE,
                   NULL                      PRICING_ATTR_VALUE_FROM,
                   NULL                      PRICING_SETUP_VALUE_FROM,
                   NULL                      PRICING_SETUP_VALUE_TO,
                   NULL                      PRICING_ATTRIBUTE_LEVEL,
                   NULL                      PRICING_ATTRIBUTE_TYPE,
                   NULL                      PRICING_OPERATOR_TYPE,
                   NULL                      PRICING_ATTRIBUTE_DATATYPE,
                   QPLAT_Q.CONTEXT           QUALIFIER_ATTRIBUTE_CONTEXT,
                   QPLAT_Q.ATTRIBUTE         QUALIFIER_ATTRIBUTE,
                   QPLAT_Q.VALUE_FROM        QUALIFIER_ATTR_VALUE_FROM,
                   QPLAT_Q.PRICING_ATTR_FLAG QUALIFIER_PRICING_ATTR_FLAG,
                   QPSQ.QUALIFIER_GROUPING_NO QUALIFIER_GROUPING_NO,
                   QPSQ.QUALIFIER_DATATYPE    QUALIFIER_DATATYPE,
                   QPSQ.QUALIFIER_ATTR_VALUE     SETUP_VALUE_FROM,
                   QPSQ.QUALIFIER_ATTR_VALUE_TO  SETUP_VALUE_TO,
                   QPSQ.COMPARISON_OPERATOR_CODE QUALIFIER_OPERATOR_TYPE,
                   QPQ.QUALIFIER_PRECEDENCE  QUALIFIER_PRECEDENCE
                  ,QPL.BREAK_UOM_CODE /* Proration */
                  ,QPL.BREAK_UOM_CONTEXT /* Proration */
                  ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
                  ,DECODE(QPQ.list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE  -- 3863226
                  ,QPLAT_Q.DERIVED_QUALIFIER_FLAG  -- Added for TCA
   FROM
         qp_npreq_lines_tmp QPLINES,
         QP_QUALIFIERS QPQ,
         QP_QUALIFIERS QPSQ,
	 qp_npreq_line_attrs_tmp QPLAT_PROD,
         qp_npreq_line_attrs_tmp QPLAT_Q,
         QP_PRICING_ATTRIBUTES QPA,
         QP_LIST_LINES QPL,
         QP_LIST_HEADERS_B QPH,
         --QP_PRICE_REQ_SOURCES QPRS
         QP_PRICE_REQ_SOURCES_V QPRS /*yangli*/
   WHERE QPQ.QUALIFIER_CONTEXT = G_LIST_HEADER_CONTEXT
   AND   QPQ.QUALIFIER_ATTRIBUTE = G_PRICELIST_ATTRIBUTE
   AND   QPQ.QUALIFIER_ATTR_VALUE = to_char(QPLINES.PRICE_LIST_HEADER_ID)
   AND   QPQ.COMPARISON_OPERATOR_CODE = '='
   AND   QPQ.LIST_TYPE_CODE = 'PRL'             --3965947
   AND   QPQ.LIST_HEADER_ID = QPA.LIST_HEADER_ID
   AND   QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
   AND   QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
   AND   QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
   AND   (QPLINES.PRICE_FLAG = G_YES
          OR
         (QPLINES.PRICE_FLAG = G_PHASE
          AND
          P_FREEZE_OVERRIDE_FLAG = G_YES))
   AND   QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
   AND   QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
   AND   QPLINES.VALIDATED_FLAG = G_NO
   AND   (QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES
          OR
          QPLINES.QUALIFIERS_EXIST_FLAG = G_NO
         )
   AND   QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
   AND   QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
   AND   QPA.EXCLUDER_FLAG = G_NO
   AND   QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
   AND   QPL.LIST_HEADER_ID = QPH.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--   AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
   AND    QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE
   --AND   (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
   --       OR
   --       QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
   AND   QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
   AND   QPLINES.REQUEST_TYPE_CODE   = QPRS.REQUEST_TYPE_CODE
   AND   QPH.ACTIVE_FLAG = G_YES
   AND   QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
   AND   QPQ.ACTIVE_FLAG = G_YES
   AND   QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
         NVL(QPQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
         AND NVL(QPQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
   AND   QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
   --AND   QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
   AND   QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   AND   QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
   AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
-- 3594459, context and attribute OR'd together
   AND   (QPSQ.QUALIFIER_CONTEXT <> G_LIST_HEADER_CONTEXT
          OR QPSQ.QUALIFIER_ATTRIBUTE <> G_PRICELIST_ATTRIBUTE)
   AND   QPLAT_Q.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
   AND   QPLAT_Q.CONTEXT       = QPSQ.QUALIFIER_CONTEXT
   AND   QPLAT_Q.ATTRIBUTE     = QPSQ.QUALIFIER_ATTRIBUTE
   AND   QPSQ.LIST_HEADER_ID    = QPQ.LIST_HEADER_ID
   AND   QPSQ.ACTIVE_FLAG = G_YES
   AND   ((QPLAT_Q.VALUE_FROM   = QPSQ.QUALIFIER_ATTR_VALUE --bug#1761272 Multiple NOT =
                AND QPSQ.COMPARISON_OPERATOR_CODE = '=')
           OR (QPLAT_Q.VALUE_FROM  <> QPSQ.QUALIFIER_ATTR_VALUE
                AND QPSQ.COMPARISON_OPERATOR_CODE = 'NOT =')
           OR
          QPSQ.COMPARISON_OPERATOR_CODE = G_OPERATOR_BETWEEN)
   AND   QPLAT_Q.LINE_INDEX  =   QPLINES.LINE_INDEX
   AND   QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
         NVL(QPSQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
         AND NVL(QPSQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
   AND   QPLAT_PROD.LINE_INDEX = QPLAT_Q.LINE_INDEX
   AND   QPLAT_Q. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   AND   G_QUALIFY_SECONDARY = G_YES
   AND ((nvl(QPLAT_Q.DERIVED_QUALIFIER_FLAG,'N')='N')
         OR (QPLAT_Q.DERIVED_QUALIFIER_FLAG = 'Y' AND QPSQ.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPQ QPLAT_PROD QPA QPLAT_PRIC QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n2) index(qplat_pric qp_preq_line_attrs_tmp_n2) l_sec_list_cur */
                   QPLAT_PROD.LINE_INDEX,
                   QPL.LIST_LINE_ID,
                   QPL.ARITHMETIC_OPERATOR,
                   QPL.OPERAND,
                   QPL.PRICING_GROUP_SEQUENCE,
                   QPL.LIST_LINE_TYPE_CODE,
                   QPL.PRICING_PHASE_ID,
                   QPL.AUTOMATIC_FLAG,
                   QPL.INCOMPATIBILITY_GRP_CODE,
                   QPL.PRICE_BY_FORMULA_ID,
                   QPL.PRODUCT_PRECEDENCE,
                   QPL.PRIMARY_UOM_FLAG,
                   QPL.MODIFIER_LEVEL_CODE,
                   QPL.LIST_LINE_NO,
                   QPA.PRODUCT_UOM_CODE,
                   QPA.EXCLUDER_FLAG,
                   QPH.LIST_TYPE_CODE,
                   QPH.ROUNDING_FACTOR,
                   QPLAT_PROD.LINE_DETAIL_INDEX,
                   QPH.LIST_HEADER_ID           LIST_HEADER_ID,
                   QPLAT_PROD.CONTEXT         PRODUCT_ATTRIBUTE_CONTEXT,
                   QPLAT_PROD.ATTRIBUTE       PRODUCT_ATTRIBUTE,
                   QPLAT_PROD.VALUE_FROM      PRODUCT_ATTR_VALUE_FROM,
                   QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
                   QPLAT_PROD.ATTRIBUTE_TYPE  PRODUCT_ATTRIBUTE_TYPE,
                   QPLAT_PROD.APPLIED_FLAG,
                   NULL                            PRODUCT_OPERATOR_TYPE,
                   QPLAT_PRIC.CONTEXT              PRICING_ATTRIBUTE_CONTEXT,
                   QPLAT_PRIC.ATTRIBUTE            PRICING_ATTRIBUTE,
                   QPLAT_PRIC.VALUE_FROM           PRICING_ATTR_VALUE_FROM,
                   QPA.PRICING_ATTR_VALUE_FROM     PRICING_SETUP_VALUE_FROM,
                   QPA.PRICING_ATTR_VALUE_TO       PRICING_SETUP_VALUE_TO,
                   QPLAT_PRIC.ATTRIBUTE_LEVEL      PRICING_ATTRIBUTE_LEVEL,
                   QPLAT_PRIC.ATTRIBUTE_TYPE       PRICING_ATTRIBUTE_TYPE,
                   QPA.COMPARISON_OPERATOR_CODE    PRICING_OPERATOR_TYPE,
                   QPA.PRICING_ATTRIBUTE_DATATYPE  PRICING_ATTRIBUTE_DATATYPE,
                   QPLAT_Q.CONTEXT              QUALIFIER_ATTRIBUTE_CONTEXT,
                   QPLAT_Q.ATTRIBUTE            QUALIFIER_ATTRIBUTE,
                   QPLAT_Q.VALUE_FROM           QUALIFIER_ATTR_VALUE_FROM,
                   QPLAT_Q.PRICING_ATTR_FLAG    QUALIFIER_PRICING_ATTR_FLAG,
                   QPSQ.QUALIFIER_GROUPING_NO   QUALIFIER_GROUPING_NO,
                   QPSQ.QUALIFIER_DATATYPE      QUALIFIER_DATATYPE,
                   QPSQ.QUALIFIER_ATTR_VALUE     SETUP_VALUE_FROM,
                   QPSQ.QUALIFIER_ATTR_VALUE_TO  SETUP_VALUE_TO,
                   QPSQ.COMPARISON_OPERATOR_CODE QUALIFIER_OPERATOR_TYPE,
                   QPQ.QUALIFIER_PRECEDENCE      QUALIFIER_PRECEDENCE
                  ,QPL.BREAK_UOM_CODE /* Proration */
                  ,QPL.BREAK_UOM_CONTEXT /* Proration */
                  ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
                  ,DECODE(QPQ.list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE  -- 3863226
                  ,QPLAT_Q.DERIVED_QUALIFIER_FLAG   -- Added for TCA
   FROM
         qp_npreq_lines_tmp qplines,
         QP_QUALIFIERS qpq,
         QP_QUALIFIERS qpsq,
         qp_npreq_line_attrs_tmp qplat_prod,
         QP_PRICING_ATTRIBUTES qpa,
         qp_npreq_line_attrs_tmp qplat_pric,
         qp_npreq_line_attrs_tmp qplat_q,
         QP_LIST_LINES qpl,
         QP_LIST_HEADERS_B qph,
         --QP_PRICE_REQ_SOURCES qprs
         QP_PRICE_REQ_SOURCES_V qprs /* yangli */
   WHERE QPQ.QUALIFIER_CONTEXT = G_LIST_HEADER_CONTEXT
   AND   QPQ.QUALIFIER_ATTRIBUTE = G_PRICELIST_ATTRIBUTE
   AND   QPQ.QUALIFIER_ATTR_VALUE = to_char(QPLINES.PRICE_LIST_HEADER_ID)
   AND   QPQ.COMPARISON_OPERATOR_CODE = '='
   AND   QPQ.LIST_TYPE_CODE = 'PRL'             --3965947
   AND   QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
   AND   QPA.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
   AND   QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
   AND   (QPLINES.PRICE_FLAG = G_YES
          OR
         (QPLINES.PRICE_FLAG = G_PHASE
          AND
          P_FREEZE_OVERRIDE_FLAG = G_YES))
   AND   QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
   AND   QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
   AND   QPLINES.VALIDATED_FLAG = G_NO
   AND   (QPLINES.PRIMARY_QUALIFIERS_MATCH_FLAG = G_YES
          OR
          QPLINES.QUALIFIERS_EXIST_FLAG = G_NO
          )
   AND   QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
   AND   QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
   AND   QPA.EXCLUDER_FLAG = G_NO
   AND   QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   AND   QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
   AND   QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
   AND   (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
          OR
          QPA.COMPARISON_OPERATOR_CODE IN ('NOT =', G_OPERATOR_BETWEEN))
   AND   QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
   AND   QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   AND   QPLAT_PRIC.LINE_INDEX = QPLAT_PROD.LINE_INDEX
   AND   QPA.LIST_HEADER_ID = QPQ.LIST_HEADER_ID
   AND   QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
   AND   QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--   AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
   AND    QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE
   --AND   (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
   --       OR
   --       QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
   AND   QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
   AND   QPLINES.REQUEST_TYPE_CODE   = QPRS.REQUEST_TYPE_CODE
   AND   QPH.ACTIVE_FLAG = G_YES
   AND   QPQ.ACTIVE_FLAG = G_YES
   AND   QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
   AND   QPLAT_Q.ATTRIBUTE_TYPE = G_QUALIFIER_TYPE
   AND   QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
   --AND   QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
   AND   QPLINES.PROCESSED_CODE = G_STS_LHS_NOT_FOUND
   AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
-- 3594459, context and attribute OR'd together
   AND   (QPSQ.QUALIFIER_CONTEXT <> G_LIST_HEADER_CONTEXT
          OR QPSQ.QUALIFIER_ATTRIBUTE <> G_PRICELIST_ATTRIBUTE)
   AND   QPLAT_Q.CONTEXT       = QPSQ.QUALIFIER_CONTEXT
   AND   QPLAT_Q.ATTRIBUTE     = QPSQ.QUALIFIER_ATTRIBUTE
   AND   QPSQ.LIST_HEADER_ID    = QPQ.LIST_HEADER_ID
   AND   QPSQ.ACTIVE_FLAG = G_YES
   AND   ((QPLAT_Q.VALUE_FROM   = QPSQ.QUALIFIER_ATTR_VALUE --bug#1761272 Multiple NOT =
                AND QPSQ.COMPARISON_OPERATOR_CODE = '=')
           OR (QPLAT_Q.VALUE_FROM  <> QPSQ.QUALIFIER_ATTR_VALUE
                AND QPSQ.COMPARISON_OPERATOR_CODE = 'NOT =')
           OR
          QPSQ.COMPARISON_OPERATOR_CODE = G_OPERATOR_BETWEEN)
   AND   QPLAT_Q.LINE_INDEX  =   QPLINES.LINE_INDEX
   AND   QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
         NVL(QPSQ.START_DATE_ACTIVE, QPLINES.PRICING_EFFECTIVE_DATE)
         AND NVL(QPSQ.END_DATE_ACTIVE,QPLINES.PRICING_EFFECTIVE_DATE)
   AND   QPLAT_PROD.LINE_INDEX = QPLAT_Q.LINE_INDEX
   AND   QPLAT_Q. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   AND   G_QUALIFY_SECONDARY = G_YES
    AND ((nvl(QPLAT_Q.DERIVED_QUALIFIER_FLAG,'N')='N')
          OR (QPLAT_Q.DERIVED_QUALIFIER_FLAG = 'Y' AND QPSQ.QUALIFY_HIER_DESCENDENTS_FLAG = 'Y')) -- Added for TCA
   ORDER BY 1,2;
Line: 15133

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: 15911

INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,LINE_INDEX,1
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,PRICING_PHASE_ID,2
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,ASK_FOR_FLAG,3
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,CREATED_FROM_LIST_LINE_TYPE,4
*/
CURSOR l_chk_deleted_pbh_cur(p_line_index IN PLS_INTEGER,
					    p_pricing_phase_id NUMBER) IS
SELECT 'X'
FROM qp_npreq_ldets_tmp
WHERE created_from_list_line_type = G_PRICE_BREAK_TYPE
AND   line_index = p_line_index
AND   pricing_phase_id = p_pricing_phase_id
AND   pricing_status_code <> G_STATUS_NEW;
Line: 16012

 Update_Sec_Price_List_Info(l_status_code,l_status_text);
Line: 16018

  G_LINE_DETAIL_INDEX_TBL.delete;
Line: 16019

  G_LINE_DETAIL_TYPE_CODE_TBL.delete;
Line: 16020

  G_LINE_INDEX_TBL.delete;
Line: 16021

  G_LIST_HEADER_ID_TBL.delete;
Line: 16022

  G_LIST_LINE_ID_TBL.delete;
Line: 16023

  G_LIST_LINE_TYPE_TBL.delete;
Line: 16024

  G_CREATED_FROM_SQL_TBL.delete;
Line: 16025

  G_PRICING_GROUP_SEQUENCE_TBL.delete;
Line: 16026

  G_OPERAND_CALCULATION_CODE_TBL.delete;
Line: 16027

  G_OPERAND_VALUE_TBL.delete;
Line: 16028

  G_PRICING_PHASE_ID_TBL.delete;
Line: 16029

  G_LIST_TYPE_CODE_TBL.delete;
Line: 16030

  G_PRICING_STATUS_CODE_TBL.delete;
Line: 16031

  G_PROCESSED_FLAG_TBL.delete;
Line: 16032

  G_AUTOMATIC_FLAG_TBL.delete;
Line: 16033

  G_MODIFIER_LEVEL_CODE_TBL.delete;
Line: 16034

  G_LIST_LINE_NO_TBL.delete;
Line: 16035

  G_INCOMP_GRP_CODE_TBL.delete;
Line: 16036

  G_PRICE_FORMULA_ID_TBL.delete;
Line: 16037

  G_PRODUCT_PRECEDENCE_TBL.delete;
Line: 16038

  G_PRIMARY_UOM_FLAG_TBL.delete;
Line: 16039

  G_ROUNDING_FACTOR_TBL.delete;
Line: 16040

  G_SECONDARY_PRICELIST_IND_TBL.delete;
Line: 16041

  G_CURRENCY_DETAIL_ID_TBL.delete;
Line: 16042

  G_CURRENCY_HEADER_ID_TBL.delete;
Line: 16043

  G_SELLING_ROUNDING_TBL.delete;
Line: 16044

  G_ORDER_CURRENCY_TBL.delete;
Line: 16045

  G_PRICING_EFFECTIVE_DATE_TBL.delete;
Line: 16046

  G_BASE_CURRENCY_CODE_TBL.delete;
Line: 16047

  G_BREAK_UOM_TBL.delete;
Line: 16048

  G_BREAK_CONTEXT_TBL.delete;
Line: 16049

  G_BREAK_ATTRIBUTE_TBL.delete;
Line: 16052

  G_LINE_INDEX_TBL_A.delete;
Line: 16053

  G_LINE_DETAIL_INDEX_TBL_A.delete;
Line: 16054

  G_ATTRIBUTE_LEVEL_tbl.delete;
Line: 16055

  G_ATTRIBUTE_TYPE_tbl.delete;
Line: 16056

  G_LIST_HEADER_ID_TBL_A.delete;
Line: 16057

  G_LIST_LINE_ID_TBL_A.delete;
Line: 16058

  G_CONTEXT_tbl.delete;
Line: 16059

  G_ATTRIBUTE_tbl.delete;
Line: 16060

  G_VALUE_FROM_tbl.delete;
Line: 16061

  G_SETUP_VALUE_FROM_tbl.delete;
Line: 16062

  G_SETUP_VALUE_TO_tbl.delete;
Line: 16063

  G_GROUPING_NUMBER_tbl.delete;
Line: 16064

  G_COMPARISON_OPERATOR_TYPE_tbl.delete;
Line: 16065

  G_VALIDATED_FLAG_tbl.delete;
Line: 16066

  G_APPLIED_FLAG_tbl.delete;
Line: 16067

  G_PRICING_STATUS_CODE_TBL_Q.delete;
Line: 16068

  G_PRICING_STATUS_TEXT_tbl.delete;
Line: 16069

  G_QUALIFIER_PRECEDENCE_TBL.delete;
Line: 16070

  G_DATATYPE_tbl.delete;
Line: 16071

  G_PRICING_ATTR_FLAG_tbl.delete;
Line: 16072

  G_QUALIFIER_TYPE_TBL.delete;
Line: 16073

  G_PRODUCT_UOM_CODE_TBL.delete;
Line: 16074

  G_EXCLUDER_FLAG_TBL.delete;
Line: 16075

  G_PRICING_PHASE_ID_TBL_A.delete;
Line: 16076

  G_INCOMP_GRP_CODE_TBL_A.delete;
Line: 16077

  G_LINE_DETAIL_TYPE_CODE_TBL_A.delete;
Line: 16078

  G_MODIFIER_LEVEL_CODE_TBL_A.delete;
Line: 16079

  G_PRIMARY_UOM_FLAG_TBL_A.delete;
Line: 16164

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

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

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

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

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

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

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

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

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

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

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

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

        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: 16613

      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: 16699

       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: 16714

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

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

      FETCH l_chk_deleted_pbh_cur INTO l_dummy;
Line: 16738

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

      CLOSE l_chk_deleted_pbh_cur; */
Line: 16744

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

  | 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: 17039

SELECT /*+ ORDERED USE_NL(QPLAT_PROD QPA QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5) l_list_cur */
                   QPLAT_PROD.LINE_INDEX,
                   QPL.LIST_LINE_ID,
                   QPL.ARITHMETIC_OPERATOR,
                   QPL.OPERAND,
                   QPL.PRICING_GROUP_SEQUENCE,
                   QPL.LIST_LINE_TYPE_CODE,
                   QPL.PRICING_PHASE_ID,
                   QPL.AUTOMATIC_FLAG,
                   QPL.INCOMPATIBILITY_GRP_CODE,
                   QPL.PRICE_BY_FORMULA_ID,
                   QPL.PRODUCT_PRECEDENCE,
                   QPL.PRIMARY_UOM_FLAG,
                   QPL.MODIFIER_LEVEL_CODE,
                   QPL.LIST_LINE_NO,
                   QPA.PRODUCT_UOM_CODE,
                   QPA.EXCLUDER_FLAG,
                   QPH.LIST_TYPE_CODE,
   /* vivek        QPH.ROUNDING_FACTOR,  */
                   QCDT.ROUNDING_FACTOR, /* vivek */
                   QPH.LIST_HEADER_ID           LIST_HEADER_ID,
                   QPLAT_PROD.CONTEXT         PRODUCT_ATTRIBUTE_CONTEXT,
                   QPLAT_PROD.ATTRIBUTE       PRODUCT_ATTRIBUTE,
                   QPLAT_PROD.VALUE_FROM      PRODUCT_ATTR_VALUE_FROM,
                   QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
                   QPLAT_PROD.ATTRIBUTE_TYPE  PRODUCT_ATTRIBUTE_TYPE,
                   QPLAT_PROD.APPLIED_FLAG,
                   NULL                      PRICING_ATTRIBUTE_CONTEXT,
                   NULL                      PRICING_ATTRIBUTE,
                   NULL                      PRICING_ATTR_VALUE_FROM,
                   NULL                      PRICING_SETUP_VALUE_FROM,
                   NULL                      PRICING_SETUP_VALUE_TO,
                   NULL                      PRICING_ATTRIBUTE_LEVEL,
                   NULL                      PRICING_ATTRIBUTE_TYPE,
                   NULL                      PRICING_OPERATOR_TYPE,
                   NULL                      PRICING_ATTRIBUTE_DATATYPE,
                   QCDT.CURRENCY_DETAIL_ID,  /* sunilpandey */
                   QCDT.CURRENCY_HEADER_ID,  /* vivek */
                   QCDT.SELLING_ROUNDING_FACTOR,  /* vivek */
                   QPLINES.CURRENCY_CODE   ORDER_CURRENCY,  /* vivek */
                   QPLINES.PRICING_EFFECTIVE_DATE,  /* vivek */
                   QPH.CURRENCY_CODE   BASE_CURRENCY_CODE  /* vivek */
                  ,QPL.BREAK_UOM_CODE /* Proration */
                  ,QPL.BREAK_UOM_CONTEXT /* Proration */
                  ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
                  ,QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
   FROM
         qp_npreq_lines_tmp QPLINES,
         qp_npreq_line_attrs_tmp qplat_prod,
         QP_PRICING_ATTRIBUTES QPA,
         QP_LIST_LINES QPL,
         QP_LIST_HEADERS_B QPH,
         --QP_PRICE_REQ_SOURCES qprs,
         QP_PRICE_REQ_SOURCES_V qprs, /* yangli */
         QP_CURRENCY_DETAILS QCDT   /* Vivek */
   WHERE QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
   AND   QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND, QP_PREQ_GRP.G_YES_PROD_IND)
   AND   QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
   AND   (QPLINES.PRICE_FLAG = G_YES
          OR
         (QPLINES.PRICE_FLAG = G_PHASE
          AND
          P_FREEZE_OVERRIDE_FLAG = G_YES))
   AND   QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
   AND   QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
   AND   QPLINES.VALIDATED_FLAG = G_YES
   AND   QPLINES.QUALIFIERS_EXIST_FLAG IN (G_YES,G_NO)
   --AND   QPLINES.PRICING_ATTRS_EXIST_FLAG = G_NO
   AND   QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
   AND   QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
   AND   QPA.EXCLUDER_FLAG = G_NO
   AND   QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   AND   QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--   AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
   AND   QPA.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
   AND   QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
   AND   QPL.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND, QP_PREQ_GRP.G_YES_PROD_IND)
   AND    QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   NVL(QPLINES.START_DATE_ACTIVE_FIRST,TRUNC(SYSDATE)) BETWEEN
           NVL(QPH.START_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
               TRUNC(SYSDATE) )) AND
           NVL(QPH.END_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
               TRUNC(SYSDATE) ))
   AND  NVL(QPLINES.START_DATE_ACTIVE_SECOND,TRUNC(SYSDATE)) BETWEEN
           NVL(QPH.START_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
               TRUNC(SYSDATE) )) AND
           NVL(QPH.END_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
               TRUNC(SYSDATE) ))
   AND   NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X') =
                NVL(QPH.ACTIVE_DATE_FIRST_TYPE,NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X'))
   AND   NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X') =
                NVL(QPH.ACTIVE_DATE_SECOND_TYPE,NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X'))
   AND    QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
/* Vivek    AND   QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE  */
            AND QPH.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID /* Vivek */
            AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE  /* Vivek */
            AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN   /* Vivek */
                NVL(TRUNC(QCDT.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
                AND NVL(TRUNC(QCDT.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
   AND (   /* Vivek */
        (qcdt.curr_attribute_context is null   /* Vivek */
         and not exists   /* Vivek */
             (select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x'   --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp,   qp_currency_details qcdt1 /* Vivek */
               where qcdt1.curr_attribute_context IS NOT NULL  /* Vivek */
		 and qcdt1.curr_attribute_context = pa_tmp.context   /* Vivek */
                 and qcdt1.curr_attribute = pa_tmp.attribute   /* Vivek */
                 and qcdt1.curr_attribute_value = pa_tmp.value_from   /* Vivek */
                 and qcdt1.curr_attribute_type = pa_tmp.ATTRIBUTE_TYPE   /* Vivek */
                 and qcdt1.to_currency_code = qcdt.to_currency_code   /* Vivek */
                 and qcdt1.currency_header_id = qcdt.currency_header_id   /* Vivek */
                 and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED   /* Vivek */
                 and pa_tmp.line_index = qplines.line_index   /* Vivek */
                 AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN   /* Vivek */
                     NVL(TRUNC(QCDT1.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
                     AND NVL(TRUNC(QCDT1.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
             )   /* Vivek */
        )   /* Vivek */
        OR   /* Vivek */
        (qcdt.curr_attribute_context is not null   /* Vivek */
         and qcdt.precedence =
             (select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2  /* Vivek */
               where qcdt2.curr_attribute_context IS NOT NULL   /* Vivek */
		 and qcdt2.curr_attribute_context = pa_tmp1.context   /* Vivek */
                 and qcdt2.curr_attribute = pa_tmp1.attribute   /* Vivek */
                 and qcdt2.curr_attribute_value = pa_tmp1.value_from   /* Vivek */
                 and qcdt2.curr_attribute_type = pa_tmp1.ATTRIBUTE_TYPE   /* Vivek */
                 and qcdt2.to_currency_code = qcdt.to_currency_code   /* Vivek */
                 and qcdt2.currency_header_id = qcdt.currency_header_id   /* Vivek */
                 and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED   /* Vivek */
                 and pa_tmp1.line_index = qplines.line_index   /* Vivek */
                 AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN   /* Vivek */
                     NVL(TRUNC(QCDT2.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
                     AND NVL(TRUNC(QCDT2.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
             )   /* Vivek */
        )   /* Vivek */
       )   /* Vivek */
   --AND   (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
   --       OR
   --       QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
   AND   QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
   AND   QPLINES.REQUEST_TYPE_CODE   = QPRS.REQUEST_TYPE_CODE
   AND   QPH.ACTIVE_FLAG = G_YES
   AND   QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
   AND   QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
   AND   QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
   AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLAT_PROD QPA QPLAT_PRIC QPL QPH) index(QPA QP_PRICING_ATTRIBUTES_N5)  index(qplat_pric qp_preq_line_attrs_tmp_N2) l_list_cur */
                   QPLAT_PROD.LINE_INDEX,
                   QPL.LIST_LINE_ID,
                   QPL.ARITHMETIC_OPERATOR,
                   QPL.OPERAND,
                   QPL.PRICING_GROUP_SEQUENCE,
                   QPL.LIST_LINE_TYPE_CODE,
                   QPL.PRICING_PHASE_ID,
                   QPL.AUTOMATIC_FLAG,
                   QPL.INCOMPATIBILITY_GRP_CODE,
                   QPL.PRICE_BY_FORMULA_ID,
                   QPL.PRODUCT_PRECEDENCE,
                   QPL.PRIMARY_UOM_FLAG,
                   QPL.MODIFIER_LEVEL_CODE,
                   QPL.LIST_LINE_NO,
                   QPA.PRODUCT_UOM_CODE,
                   QPA.EXCLUDER_FLAG,
                   QPH.LIST_TYPE_CODE,
   /* vivek        QPH.ROUNDING_FACTOR,  */
                   QCDT.ROUNDING_FACTOR, /* vivek */
                   QPH.LIST_HEADER_ID         LIST_HEADER_ID,
                   QPLAT_PROD.CONTEXT         PRODUCT_ATTRIBUTE_CONTEXT,
                   QPLAT_PROD.ATTRIBUTE       PRODUCT_ATTRIBUTE,
                   QPLAT_PROD.VALUE_FROM      PRODUCT_ATTR_VALUE_FROM,
                   QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
                   QPLAT_PROD.ATTRIBUTE_TYPE  PRODUCT_ATTRIBUTE_TYPE,
                   QPLAT_PROD.APPLIED_FLAG,
                   QPLAT_PRIC.CONTEXT              PRICING_ATTRIBUTE_CONTEXT,
                   QPLAT_PRIC.ATTRIBUTE            PRICING_ATTRIBUTE,
                   QPLAT_PRIC.VALUE_FROM           PRICING_ATTR_VALUE_FROM,
                   QPA.PRICING_ATTR_VALUE_FROM     PRICING_SETUP_VALUE_FROM,
                   QPA.PRICING_ATTR_VALUE_TO       PRICING_SETUP_VALUE_TO,
                   QPLAT_PRIC.ATTRIBUTE_LEVEL      PRICING_ATTRIBUTE_LEVEL,
                   QPLAT_PRIC.ATTRIBUTE_TYPE       PRICING_ATTRIBUTE_TYPE,
                   QPA.COMPARISON_OPERATOR_CODE    PRICING_OPERATOR_TYPE,
                   QPA.PRICING_ATTRIBUTE_DATATYPE   PRICING_ATTRIBUTE_DATATYPE,
                   QCDT.CURRENCY_DETAIL_ID,  /* sunilpandey */
                   QCDT.CURRENCY_HEADER_ID,  /* vivek */
                   QCDT.SELLING_ROUNDING_FACTOR,  /* vivek */
                   QPLINES.CURRENCY_CODE   ORDER_CURRENCY,  /* vivek */
                   QPLINES.PRICING_EFFECTIVE_DATE,  /* vivek */
                   QPH.CURRENCY_CODE   BASE_CURRENCY_CODE  /* vivek */
                  ,QPL.BREAK_UOM_CODE /* Proration */
                  ,QPL.BREAK_UOM_CONTEXT /* Proration */
                  ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
                  ,QPL.PRICE_BREAK_TYPE_CODE --[julin] for price book
   FROM
         qp_npreq_lines_tmp qplines,
         qp_npreq_line_attrs_tmp qplat_prod,
         QP_PRICING_ATTRIBUTES qpa,
         qp_npreq_line_attrs_tmp qplat_pric,
         QP_LIST_LINES qpl,
         QP_LIST_HEADERS_B qph,
         --QP_PRICE_REQ_SOURCES qprs,
         QP_PRICE_REQ_SOURCES_V qprs, /* yangli */
         QP_CURRENCY_DETAILS QCDT   /* Vivek */
   WHERE QPA.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
   AND   QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_PRIC_IND)
   AND   QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
   AND   (QPLINES.PRICE_FLAG = G_YES
          OR
         (QPLINES.PRICE_FLAG = G_PHASE
          AND
          P_FREEZE_OVERRIDE_FLAG = G_YES))
   AND   QPLINES.LIST_PRICE_OVERRIDE_FLAG IN ('N', 'O') --po integration
   AND   QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL
   AND   QPLINES.VALIDATED_FLAG = G_YES
   AND   QPLINES.QUALIFIERS_EXIST_FLAG IN (G_YES,G_NO)
   AND   QPLINES.PRICING_ATTRS_EXIST_FLAG = G_YES
   AND   QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
   AND   QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
   AND   QPA.EXCLUDER_FLAG = G_NO
   AND   QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   AND   QPA.PRICING_ATTRIBUTE_CONTEXT IS NOT NULL
   AND   QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
   AND   QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
   AND   (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
          OR
          QPA.COMPARISON_OPERATOR_CODE IN ('NOT =', G_OPERATOR_BETWEEN))
   AND   QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
   AND   QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   AND   QPLAT_PRIC.LINE_INDEX = QPLAT_PROD.LINE_INDEX
   AND   QPH.LIST_HEADER_ID = QPL.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--   AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
   AND   QPA.LIST_HEADER_ID = QPLINES.PRICE_LIST_HEADER_ID
   AND   QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
   AND   QPL.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_PRIC_IND)
   AND    QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   NVL(QPLINES.START_DATE_ACTIVE_FIRST,TRUNC(SYSDATE)) BETWEEN
           NVL(QPH.START_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
               TRUNC(SYSDATE) )) AND
           NVL(QPH.END_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
               TRUNC(SYSDATE) ))
   AND  NVL(QPLINES.START_DATE_ACTIVE_SECOND,TRUNC(SYSDATE)) BETWEEN
           NVL(QPH.START_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
               TRUNC(SYSDATE) )) AND
           NVL(QPH.END_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
               TRUNC(SYSDATE) ))
   AND   NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X') =
                NVL(QPH.ACTIVE_DATE_FIRST_TYPE,NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X'))
   AND   NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X') =
                NVL(QPH.ACTIVE_DATE_SECOND_TYPE,NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X'))
   AND   QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
/* Vivek    AND   QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE  */
            AND QPH.CURRENCY_HEADER_ID = QCDT.CURRENCY_HEADER_ID /* Vivek */
            AND QPLINES.CURRENCY_CODE = QCDT.TO_CURRENCY_CODE  /* Vivek */
            AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN   /* Vivek */
                NVL(TRUNC(QCDT.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
                AND NVL(TRUNC(QCDT.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
   AND (   /* Vivek */
        (qcdt.curr_attribute_context is null   /* Vivek */
         and not exists   /* Vivek */
             (select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x'   --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp,   qp_currency_details qcdt1 /* Vivek */
               where qcdt1.curr_attribute_context IS NOT NULL  /* Vivek */
		 and qcdt1.curr_attribute_context = pa_tmp.context   /* Vivek */
                 and qcdt1.curr_attribute = pa_tmp.attribute   /* Vivek */
                 and qcdt1.curr_attribute_value = pa_tmp.value_from   /* Vivek */
                 and qcdt1.curr_attribute_type = pa_tmp.ATTRIBUTE_TYPE   /* Vivek */
                 and qcdt1.to_currency_code = qcdt.to_currency_code   /* Vivek */
                 and qcdt1.currency_header_id = qcdt.currency_header_id   /* Vivek */
                 and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED   /* Vivek */
                 and pa_tmp.line_index = qplines.line_index   /* Vivek */
                 AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN   /* Vivek */
                     NVL(TRUNC(QCDT1.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
                     AND NVL(TRUNC(QCDT1.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
             )   /* Vivek */
        )   /* Vivek */
        OR   /* Vivek */
        (qcdt.curr_attribute_context is not null   /* Vivek */
         and qcdt.precedence =
             (select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2  /* Vivek */
               where qcdt2.curr_attribute_context IS NOT NULL   /* Vivek */
		 and qcdt2.curr_attribute_context = pa_tmp1.context   /* Vivek */
                 and qcdt2.curr_attribute = pa_tmp1.attribute   /* Vivek */
                 and qcdt2.curr_attribute_value = pa_tmp1.value_from   /* Vivek */
                 and qcdt2.curr_attribute_type = pa_tmp1.ATTRIBUTE_TYPE   /* Vivek */
                 and qcdt2.to_currency_code = qcdt.to_currency_code   /* Vivek */
                 and qcdt2.currency_header_id = qcdt.currency_header_id   /* Vivek */
                 and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED   /* Vivek */
                 and pa_tmp1.line_index = qplines.line_index   /* Vivek */
                 AND QPLINES.PRICING_EFFECTIVE_DATE BETWEEN   /* Vivek */
                     NVL(TRUNC(QCDT2.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
                     AND NVL(TRUNC(QCDT2.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)/* Vivek */
             )   /* Vivek */
        )   /* Vivek */
       )   /* Vivek */
   --AND   (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
   --       OR
   --       QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
   AND   QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
   AND   QPLINES.REQUEST_TYPE_CODE   = QPRS.REQUEST_TYPE_CODE
   AND   QPH.ACTIVE_FLAG = G_YES
   AND   QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
   AND   QPLAT_PROD.LINE_INDEX = QPLINES.LINE_INDEX
   AND   QPL.PRICING_PHASE_ID = G_PRICE_LIST_PHASE_ID
   AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
   ORDER BY 1,2; --ORDER BY LINE_INDEX AND LIST LINE ID
Line: 17407

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: 17886

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: 18611

  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: 18672

SELECT /*+ ORDERED USE_NL(QPLAT_PROD QPA QPH QPL QPRS) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n7) l_other_list_cur */
                   QPLINES.LINE_INDEX,
                   QPL.LIST_LINE_ID,
                   QPL.ARITHMETIC_OPERATOR,
                   QPL.OPERAND,
                   QPL.PRICING_GROUP_SEQUENCE,
                   QPL.LIST_LINE_TYPE_CODE,
                   QPL.LIST_PRICE,
                   QPL.LIST_PRICE_UOM_CODE,
                   QPL.PERCENT_PRICE,
                   QPL.PRICING_PHASE_ID,
                   QPL.AUTOMATIC_FLAG,
                   QPL.OVERRIDE_FLAG,
                   QPL.PRINT_ON_INVOICE_FLAG,
                   QPL.MODIFIER_LEVEL_CODE,
                   QPL.BENEFIT_QTY,
                   QPL.BENEFIT_UOM_CODE,
                   QPL.LIST_LINE_NO,
                   QPL.ACCRUAL_FLAG,
                   QPL.ACCRUAL_CONVERSION_RATE,
                   QPL.ESTIM_ACCRUAL_RATE,
                   QPL.RECURRING_FLAG,
                   QPL.INCOMPATIBILITY_GRP_CODE,
                   QPL.PRICE_BY_FORMULA_ID,
                   QPL.PRODUCT_PRECEDENCE,
                   QPL.PRIMARY_UOM_FLAG,
                   QPA.PRODUCT_UOM_CODE,
                   QPA.EXCLUDER_FLAG,
                   QPH.ASK_FOR_FLAG,
                   QPH.LIST_TYPE_CODE,
                   QPH.ROUNDING_FACTOR,
                   QPLAT_PROD.LINE_DETAIL_INDEX,
                   L_LIST_HEADER_ID           LIST_HEADER_ID,
                   QPLAT_PROD.CONTEXT         PRODUCT_ATTRIBUTE_CONTEXT,
                   QPLAT_PROD.ATTRIBUTE       PRODUCT_ATTRIBUTE,
                   QPLAT_PROD.VALUE_FROM      PRODUCT_ATTR_VALUE_FROM,
                   QPLAT_PROD.VALUE_TO        PRODUCT_ATTR_VALUE_TO,
                   QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
                   QPLAT_PROD.ATTRIBUTE_TYPE  PRODUCT_ATTRIBUTE_TYPE,
                   QPL.AUTOMATIC_FLAG APPLIED_FLAG,  	-- shu fix bug 1915355
                   QPLAT_PROD.COMPARISON_OPERATOR_TYPE_CODE PRODUCT_OPERATOR_TYPE,
                   NULL                            PRICING_ATTRIBUTE_CONTEXT,
                   NULL                            PRICING_ATTRIBUTE,
                   NULL                            PRICING_ATTR_VALUE_FROM,
                   NULL                            PRICING_SETUP_VALUE_FROM,
                   NULL                            PRICING_SETUP_VALUE_TO,
                   NULL                            PRICING_ATTRIBUTE_LEVEL,
                   NULL                            PRICING_ATTRIBUTE_TYPE,
                   NULL                            PRICING_OPERATOR_TYPE,
                   NULL                            PRICING_ATTRIBUTE_DATATYPE
   FROM
         qp_npreq_lines_tmp QPLINES,
         qp_npreq_line_attrs_tmp QPLAT_PROD,
         QP_PRICING_ATTRIBUTES QPA,
         QP_LIST_HEADERS_B QPH,
	 QP_LIST_LINES QPL,
         QP_PRICE_REQ_SOURCES_V QPRS
   WHERE QPA.PRICING_PHASE_ID = P_PRICING_PHASE_ID
   AND   QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_IND, QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND,
                                   QP_PREQ_GRP.G_YES_PROD_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_HDR_LINE_QUAL_IND)
   AND   QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
   AND   QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
   AND   QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
   AND   QPLINES.PRICED_UOM_CODE = NVL(QPA.PRODUCT_UOM_CODE,QPLINES.PRICED_UOM_CODE)
   AND   (QPLINES.PRICE_FLAG = G_YES
             OR
             (QPLINES.PRICE_FLAG = G_PHASE
              AND
              P_FREEZE_OVERRIDE_FLAG = G_YES))
   AND QPH.LIST_HEADER_ID = L_LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--   AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
   AND   QPH.ASK_FOR_FLAG = G_YES
   AND   QPA.LIST_HEADER_ID = L_LIST_HEADER_ID
   AND   QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
   AND   QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
   --AND   QPL.PRICING_PHASE_ID = p_pricing_phase_id
   --AND   QPL.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_IND, QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND,
   --                                QP_PREQ_GRP.G_YES_PROD_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_HDR_LINE_QUAL_IND)
   AND   QPLAT_PROD.LINE_INDEX = L_LINE_INDEX
   AND   QPLINES.LINE_INDEX = L_LINE_INDEX
   AND    QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
    AND   NVL(QPLINES.START_DATE_ACTIVE_FIRST,TRUNC(SYSDATE)) BETWEEN
           NVL(QPH.START_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
               TRUNC(SYSDATE) )) AND
           NVL(QPH.END_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
               TRUNC(SYSDATE) ))
   AND  NVL(QPLINES.START_DATE_ACTIVE_SECOND,TRUNC(SYSDATE)) BETWEEN
           NVL(QPH.START_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
               TRUNC(SYSDATE) )) AND
           NVL(QPH.END_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
               TRUNC(SYSDATE) ))
   AND   NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X') =
                NVL(QPH.ACTIVE_DATE_FIRST_TYPE,NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X'))
   AND   NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X') =
                NVL(QPH.ACTIVE_DATE_SECOND_TYPE,NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X'))
   AND   QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   ((QPH.CURRENCY_CODE IS NOT NULL AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE)
          OR
          QPH.CURRENCY_CODE IS NULL) -- optional currency
   AND   (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
          OR
          QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
   AND   QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
   AND   QPLINES.REQUEST_TYPE_CODE   = QPRS.REQUEST_TYPE_CODE
   AND   QPH.ACTIVE_FLAG = G_YES
   AND   QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
  UNION ALL
SELECT /*+ ORDERED USE_NL(QPLAT_PROD QPA QPLAT_PRIC QPH QPL QPRS) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qplat_pric qp_preq_line_attrs_tmp_N2) index(qph qp_list_headers_b_n7) l_other_list_cur */
                   QPLINES.LINE_INDEX,
                   QPL.LIST_LINE_ID,
                   QPL.ARITHMETIC_OPERATOR,
                   QPL.OPERAND,
                   QPL.PRICING_GROUP_SEQUENCE,
                   QPL.LIST_LINE_TYPE_CODE,
                   QPL.LIST_PRICE,
                   QPL.LIST_PRICE_UOM_CODE,
                   QPL.PERCENT_PRICE,
                   QPL.PRICING_PHASE_ID,
                   QPL.AUTOMATIC_FLAG,
                   QPL.OVERRIDE_FLAG,
                   QPL.PRINT_ON_INVOICE_FLAG,
                   QPL.MODIFIER_LEVEL_CODE,
                   QPL.BENEFIT_QTY,
                   QPL.BENEFIT_UOM_CODE,
                   QPL.LIST_LINE_NO,
                   QPL.ACCRUAL_FLAG,
                   QPL.ACCRUAL_CONVERSION_RATE,
                   QPL.ESTIM_ACCRUAL_RATE,
                   QPL.RECURRING_FLAG,
                   QPL.INCOMPATIBILITY_GRP_CODE,
                   QPL.PRICE_BY_FORMULA_ID,
                   QPL.PRODUCT_PRECEDENCE,
                   QPL.PRIMARY_UOM_FLAG,
                   QPA.PRODUCT_UOM_CODE,
                   QPA.EXCLUDER_FLAG,
                   QPH.ASK_FOR_FLAG,
                   QPH.LIST_TYPE_CODE,
                   QPH.ROUNDING_FACTOR,
                   QPLAT_PROD.LINE_DETAIL_INDEX,
                   L_LIST_HEADER_ID           LIST_HEADER_ID,
                   QPLAT_PROD.CONTEXT         PRODUCT_ATTRIBUTE_CONTEXT,
                   QPLAT_PROD.ATTRIBUTE       PRODUCT_ATTRIBUTE,
                   QPLAT_PROD.VALUE_FROM      PRODUCT_ATTR_VALUE_FROM,
                   QPLAT_PROD.VALUE_TO        PRODUCT_ATTR_VALUE_TO,
                   QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
                   QPLAT_PROD.ATTRIBUTE_TYPE  PRODUCT_ATTRIBUTE_TYPE,
                   QPL.AUTOMATIC_FLAG APPLIED_FLAG, -- shu fix bug 1915355
                   QPLAT_PROD.COMPARISON_OPERATOR_TYPE_CODE PRODUCT_OPERATOR_TYPE,
                   QPLAT_PRIC.CONTEXT              PRICING_ATTRIBUTE_CONTEXT,
                   QPLAT_PRIC.ATTRIBUTE            PRICING_ATTRIBUTE,
                   QPLAT_PRIC.VALUE_FROM           PRICING_ATTR_VALUE_FROM,
                   QPA.PRICING_ATTR_VALUE_FROM     PRICING_SETUP_VALUE_FROM,
                   QPA.PRICING_ATTR_VALUE_TO       PRICING_SETUP_VALUE_TO,
                   QPLAT_PRIC.ATTRIBUTE_LEVEL      PRICING_ATTRIBUTE_LEVEL,
                   QPLAT_PRIC.ATTRIBUTE_TYPE       PRICING_ATTRIBUTE_TYPE,
                   QPA.COMPARISON_OPERATOR_CODE    PRICING_OPERATOR_TYPE,
                   QPA.PRICING_ATTRIBUTE_DATATYPE   PRICING_ATTRIBUTE_DATATYPE
   FROM
         qp_npreq_lines_tmp QPLINES,
         qp_npreq_line_attrs_tmp QPLAT_PROD,
         QP_PRICING_ATTRIBUTES QPA,
         qp_npreq_line_attrs_tmp QPLAT_PRIC,
         QP_LIST_HEADERS_B QPH,
	 QP_LIST_LINES QPL,
         QP_PRICE_REQ_SOURCES QPRS
   WHERE QPA.PRICING_PHASE_ID = p_pricing_phase_id
   AND   QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_IND, QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,
                              QP_PREQ_GRP.G_YES_PROD_PRIC_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PRIC_HDR_LINE_QUAL_IND)
   AND   QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
   AND   QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
   AND   QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
   AND   QPLINES.PRICED_UOM_CODE = NVL(QPA.PRODUCT_UOM_CODE,QPLINES.PRICED_UOM_CODE)
   AND   (QPLINES.PRICE_FLAG = G_YES
             OR
             (QPLINES.PRICE_FLAG = G_PHASE
              AND
              P_FREEZE_OVERRIDE_FLAG = G_YES))
   AND   QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
         AND QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
         AND (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
               OR
               QPA.COMPARISON_OPERATOR_CODE = G_OPERATOR_BETWEEN)
   AND QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
   AND QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   AND QPLAT_PROD.LINE_INDEX = QPLAT_PRIC.LINE_INDEX
   AND QPH.LIST_HEADER_ID = L_LIST_HEADER_ID
   AND   QPH.ASK_FOR_FLAG = G_YES
   AND   QPA.LIST_HEADER_ID = L_LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--   AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
   AND   QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
   AND   QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
   --AND   QPL.PRICING_PHASE_ID = p_pricing_phase_id
   --AND   QPL.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_IND, QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,
   --                                QP_PREQ_GRP.G_YES_PROD_PRIC_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PRIC_HDR_LINE_QUAL_IND)
   AND   QPLAT_PROD.LINE_INDEX = L_LINE_INDEX
   AND   QPLINES.LINE_INDEX = L_LINE_INDEX
   AND    QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   NVL(QPLINES.START_DATE_ACTIVE_FIRST,TRUNC(SYSDATE)) BETWEEN
           NVL(QPH.START_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
               TRUNC(SYSDATE) )) AND
           NVL(QPH.END_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
               TRUNC(SYSDATE) ))
   AND  NVL(QPLINES.START_DATE_ACTIVE_SECOND,TRUNC(SYSDATE)) BETWEEN
           NVL(QPH.START_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
               TRUNC(SYSDATE) )) AND
           NVL(QPH.END_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
               TRUNC(SYSDATE) ))
   AND   NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X') =
                NVL(QPH.ACTIVE_DATE_FIRST_TYPE,NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X'))
   AND   NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X') =
                NVL(QPH.ACTIVE_DATE_SECOND_TYPE,NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X'))
   AND   QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   ((QPH.CURRENCY_CODE IS NOT NULL AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE)
          OR
          QPH.CURRENCY_CODE IS NULL) -- optional currency
   AND   (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
          OR
          QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
   AND   QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
   AND   QPLINES.REQUEST_TYPE_CODE   = QPRS.REQUEST_TYPE_CODE
   AND   QPH.ACTIVE_FLAG = G_YES
   AND   QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   ORDER BY 1,2;
Line: 18916

SELECT /*+ ORDERED USE_NL(QPLAT_PROD QPA QPL QPH ) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qph qp_list_headers_b_n7) l_other_list_line_cur */
                   QPLINES.LINE_INDEX,
                   QPL.LIST_LINE_ID,
                   QPL.ARITHMETIC_OPERATOR,
                   QPL.OPERAND,
                   QPL.PRICING_GROUP_SEQUENCE,
                   QPL.LIST_LINE_TYPE_CODE,
                   QPL.LIST_PRICE,
                   QPL.LIST_PRICE_UOM_CODE,
                   QPL.PERCENT_PRICE,
                   QPL.PRICING_PHASE_ID,
                   QPL.AUTOMATIC_FLAG,
                   QPL.OVERRIDE_FLAG,
                   QPL.PRINT_ON_INVOICE_FLAG,
                   QPL.MODIFIER_LEVEL_CODE,
                   QPL.BENEFIT_QTY,
                   QPL.BENEFIT_UOM_CODE,
                   QPL.LIST_LINE_NO,
                   QPL.ACCRUAL_FLAG,
                   QPL.ACCRUAL_CONVERSION_RATE,
                   QPL.ESTIM_ACCRUAL_RATE,
                   QPL.RECURRING_FLAG,
                   QPL.INCOMPATIBILITY_GRP_CODE,
                   QPL.PRICE_BY_FORMULA_ID,
                   QPL.PRODUCT_PRECEDENCE,
                   QPL.PRIMARY_UOM_FLAG,
                   QPA.PRODUCT_UOM_CODE,
                   QPA.EXCLUDER_FLAG,
                   QPH.ASK_FOR_FLAG,
                   QPH.LIST_TYPE_CODE,
                   QPH.ROUNDING_FACTOR,
                   QPLAT_PROD.LINE_DETAIL_INDEX,
                   QPL.LIST_HEADER_ID         LIST_HEADER_ID,
                   QPLAT_PROD.CONTEXT         PRODUCT_ATTRIBUTE_CONTEXT,
                   QPLAT_PROD.ATTRIBUTE       PRODUCT_ATTRIBUTE,
                   QPLAT_PROD.VALUE_FROM      PRODUCT_ATTR_VALUE_FROM,
                   QPLAT_PROD.VALUE_TO        PRODUCT_ATTR_VALUE_TO,
                   QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
                   QPLAT_PROD.ATTRIBUTE_TYPE  PRODUCT_ATTRIBUTE_TYPE,
                   QPL.AUTOMATIC_FLAG APPLIED_FLAG, -- fix bug 1915355
                   QPLAT_PROD.COMPARISON_OPERATOR_TYPE_CODE PRODUCT_OPERATOR_TYPE,
                   NULL                            PRICING_ATTRIBUTE_CONTEXT,
                   NULL                            PRICING_ATTRIBUTE,
                   NULL                            PRICING_ATTR_VALUE_FROM,
                   NULL                            PRICING_SETUP_VALUE_FROM,
                   NULL                            PRICING_SETUP_VALUE_TO,
                   NULL                            PRICING_ATTRIBUTE_LEVEL,
                   NULL                            PRICING_ATTRIBUTE_TYPE,
                   NULL                            PRICING_OPERATOR_TYPE,
                   NULL                            PRICING_ATTRIBUTE_DATATYPE
   FROM
         qp_npreq_lines_tmp QPLINES,
         qp_npreq_line_attrs_tmp QPLAT_PROD,
         QP_PRICING_ATTRIBUTES QPA,
         QP_LIST_HEADERS_B QPH,
         QP_LIST_LINES QPL,
         QP_PRICE_REQ_SOURCES QPRS
   WHERE QPA.PRICING_PHASE_ID = P_PRICING_PHASE_ID
   AND   QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_IND, QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND,
                                   QP_PREQ_GRP.G_YES_PROD_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_HDR_LINE_QUAL_IND)
   AND   QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
   AND   QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
   AND   QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
   AND   QPLINES.PRICED_UOM_CODE = NVL(QPA.PRODUCT_UOM_CODE,QPLINES.PRICED_UOM_CODE)
   AND   (QPLINES.PRICE_FLAG = G_YES
             OR
             (QPLINES.PRICE_FLAG = G_PHASE
              AND
              P_FREEZE_OVERRIDE_FLAG = G_YES))
   AND   QPH.LIST_HEADER_ID = QPA.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--   AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
   AND   QPH.ASK_FOR_FLAG = G_YES
   AND   QPA.LIST_LINE_ID = L_LIST_LINE_ID
   AND   QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
   AND   QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
   --AND   QPL.PRICING_PHASE_ID = p_pricing_phase_id
   --AND   QPL.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_IND, QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND,
   --                                QP_PREQ_GRP.G_YES_PROD_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PROD_HDR_LINE_QUAL_IND)
   AND   QPLAT_PROD.LINE_INDEX = L_LINE_INDEX
   AND   QPLINES.LINE_INDEX = L_LINE_INDEX
   AND    QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
    AND   NVL(QPLINES.START_DATE_ACTIVE_FIRST,TRUNC(SYSDATE)) BETWEEN
           NVL(QPH.START_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
               TRUNC(SYSDATE) )) AND
           NVL(QPH.END_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
               TRUNC(SYSDATE) ))
   AND  NVL(QPLINES.START_DATE_ACTIVE_SECOND,TRUNC(SYSDATE)) BETWEEN
           NVL(QPH.START_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
               TRUNC(SYSDATE) )) AND
           NVL(QPH.END_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
               TRUNC(SYSDATE) ))
   AND   NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X') =
                NVL(QPH.ACTIVE_DATE_FIRST_TYPE,NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X'))
   AND   NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X') =
                NVL(QPH.ACTIVE_DATE_SECOND_TYPE,NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X'))
   AND   QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   ((QPH.CURRENCY_CODE IS NOT NULL AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE)
          OR
          QPH.CURRENCY_CODE IS NULL) -- optional currency
   AND   (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
          OR
          QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
   AND   QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
   AND   QPLINES.REQUEST_TYPE_CODE   = QPRS.REQUEST_TYPE_CODE
   AND   QPH.ACTIVE_FLAG = G_YES
   AND   QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
  UNION ALL
  SELECT /*+ ORDERED USE_NL(QPLATP_PROD QPA QPLAT_PRIC QPH QPL QPRS) index(QPA QP_PRICING_ATTRIBUTES_N5) index(qplat_pric qp_preq_line_attrs_tmp_N2) index(qph qp_list_headers_b_n7) l_other_list_line_cur */
                   QPLINES.LINE_INDEX,
                   QPL.LIST_LINE_ID,
                   QPL.ARITHMETIC_OPERATOR,
                   QPL.OPERAND,
                   QPL.PRICING_GROUP_SEQUENCE,
                   QPL.LIST_LINE_TYPE_CODE,
                   QPL.LIST_PRICE,
                   QPL.LIST_PRICE_UOM_CODE,
                   QPL.PERCENT_PRICE,
                   QPL.PRICING_PHASE_ID,
                   QPL.AUTOMATIC_FLAG,
                   QPL.OVERRIDE_FLAG,
                   QPL.PRINT_ON_INVOICE_FLAG,
                   QPL.MODIFIER_LEVEL_CODE,
                   QPL.BENEFIT_QTY,
                   QPL.BENEFIT_UOM_CODE,
                   QPL.LIST_LINE_NO,
                   QPL.ACCRUAL_FLAG,
                   QPL.ACCRUAL_CONVERSION_RATE,
                   QPL.ESTIM_ACCRUAL_RATE,
                   QPL.RECURRING_FLAG,
                   QPL.INCOMPATIBILITY_GRP_CODE,
                   QPL.PRICE_BY_FORMULA_ID,
                   QPL.PRODUCT_PRECEDENCE,
                   QPL.PRIMARY_UOM_FLAG,
                   QPA.PRODUCT_UOM_CODE,
                   QPA.EXCLUDER_FLAG,
                   QPH.ASK_FOR_FLAG,
                   QPH.LIST_TYPE_CODE,
                   QPH.ROUNDING_FACTOR,
                   QPLAT_PROD.LINE_DETAIL_INDEX,
                   QPL.LIST_HEADER_ID         LIST_HEADER_ID,
                   QPLAT_PROD.CONTEXT         PRODUCT_ATTRIBUTE_CONTEXT,
                   QPLAT_PROD.ATTRIBUTE       PRODUCT_ATTRIBUTE,
                   QPLAT_PROD.VALUE_FROM      PRODUCT_ATTR_VALUE_FROM,
                   QPLAT_PROD.VALUE_TO        PRODUCT_ATTR_VALUE_TO,
                   QPLAT_PROD.ATTRIBUTE_LEVEL PRODUCT_ATTRIBUTE_LEVEL,
                   QPLAT_PROD.ATTRIBUTE_TYPE  PRODUCT_ATTRIBUTE_TYPE,
                   QPL.AUTOMATIC_FLAG APPLIED_FLAG, -- shu fix bug 1915355
                   QPLAT_PROD.COMPARISON_OPERATOR_TYPE_CODE PRODUCT_OPERATOR_TYPE,
                   QPLAT_PRIC.CONTEXT              PRICING_ATTRIBUTE_CONTEXT,
                   QPLAT_PRIC.ATTRIBUTE            PRICING_ATTRIBUTE,
                   QPLAT_PRIC.VALUE_FROM           PRICING_ATTR_VALUE_FROM,
                   QPA.PRICING_ATTR_VALUE_FROM     PRICING_SETUP_VALUE_FROM,
                   QPA.PRICING_ATTR_VALUE_TO       PRICING_SETUP_VALUE_TO,
                   QPLAT_PRIC.ATTRIBUTE_LEVEL      PRICING_ATTRIBUTE_LEVEL,
                   QPLAT_PRIC.ATTRIBUTE_TYPE       PRICING_ATTRIBUTE_TYPE,
                   QPA.COMPARISON_OPERATOR_CODE    PRICING_OPERATOR_TYPE,
                   QPA.PRICING_ATTRIBUTE_DATATYPE   PRICING_ATTRIBUTE_DATATYPE
   FROM
         qp_npreq_lines_tmp QPLINES,
         qp_npreq_line_attrs_tmp QPLAT_PROD,
         QP_PRICING_ATTRIBUTES QPA,
         qp_npreq_line_attrs_tmp QPLAT_PRIC,
         QP_LIST_HEADERS_B QPH,
         QP_LIST_LINES QPL,
         QP_PRICE_REQ_SOURCES QPRS
   WHERE QPA.PRICING_PHASE_ID = p_pricing_phase_id
   AND   QPA.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_IND, QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,
                            QP_PREQ_GRP.G_YES_PROD_PRIC_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PRIC_HDR_LINE_QUAL_IND)
   AND   QPLAT_PROD.CONTEXT = QPA.PRODUCT_ATTRIBUTE_CONTEXT
   AND   QPLAT_PROD.ATTRIBUTE = QPA.PRODUCT_ATTRIBUTE
   AND   QPLAT_PROD.VALUE_FROM = QPA.PRODUCT_ATTR_VALUE
   AND   QPLINES.PRICED_UOM_CODE = NVL(QPA.PRODUCT_UOM_CODE,QPLINES.PRICED_UOM_CODE)
   AND   (QPLINES.PRICE_FLAG = G_YES
             OR
             (QPLINES.PRICE_FLAG = G_PHASE
              AND
              P_FREEZE_OVERRIDE_FLAG = G_YES))
   AND   QPLAT_PRIC.CONTEXT = QPA.PRICING_ATTRIBUTE_CONTEXT
         AND QPLAT_PRIC.ATTRIBUTE = QPA.PRICING_ATTRIBUTE
         AND (QPLAT_PRIC.VALUE_FROM = QPA.PRICING_ATTR_VALUE_FROM
               OR
               QPA.COMPARISON_OPERATOR_CODE = G_OPERATOR_BETWEEN)
   AND QPLAT_PRIC.ATTRIBUTE_TYPE = G_PRICING_TYPE
   AND QPLAT_PRIC. PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   AND QPLAT_PROD.LINE_INDEX = QPLAT_PRIC.LINE_INDEX
   AND QPH.LIST_HEADER_ID = QPA.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--   AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
   AND   QPH.ASK_FOR_FLAG = G_YES
   AND   QPA.LIST_LINE_ID = L_LIST_LINE_ID
   AND   QPA.LIST_LINE_ID = QPL.LIST_LINE_ID
   AND   QPLAT_PROD.ATTRIBUTE_TYPE = G_PRODUCT_TYPE
   --AND   QPL.PRICING_PHASE_ID = p_pricing_phase_id
   --AND   QPL.QUALIFICATION_IND IN (QP_PREQ_GRP.G_YES_PROD_PRIC_IND, QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND,
   --                                QP_PREQ_GRP.G_YES_PROD_PRIC_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_PRIC_HDR_LINE_QUAL_IND)
   AND   QPLAT_PROD.LINE_INDEX = L_LINE_INDEX
   AND   QPLINES.LINE_INDEX = L_LINE_INDEX
   AND    QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPH.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPH.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   NVL(QPLINES.START_DATE_ACTIVE_FIRST,TRUNC(SYSDATE)) BETWEEN
           NVL(QPH.START_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
               TRUNC(SYSDATE) )) AND
           NVL(QPH.END_DATE_ACTIVE_FIRST, NVL(QPLINES.START_DATE_ACTIVE_FIRST,
               TRUNC(SYSDATE) ))
   AND  NVL(QPLINES.START_DATE_ACTIVE_SECOND,TRUNC(SYSDATE)) BETWEEN
           NVL(QPH.START_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
               TRUNC(SYSDATE) )) AND
           NVL(QPH.END_DATE_ACTIVE_SECOND, NVL(QPLINES.START_DATE_ACTIVE_SECOND,
               TRUNC(SYSDATE) ))
   AND   NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X') =
                NVL(QPH.ACTIVE_DATE_FIRST_TYPE,NVL(QPLINES.ACTIVE_DATE_FIRST_TYPE,'X'))
   AND   NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X') =
                NVL(QPH.ACTIVE_DATE_SECOND_TYPE,NVL(QPLINES.ACTIVE_DATE_SECOND_TYPE,'X'))
   AND   QPLINES.PRICING_EFFECTIVE_DATE BETWEEN
           NVL(TRUNC(QPL.START_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
           AND NVL(TRUNC(QPL.END_DATE_ACTIVE),QPLINES.PRICING_EFFECTIVE_DATE)
   AND   ((QPH.CURRENCY_CODE IS NOT NULL AND QPH.CURRENCY_CODE = QPLINES.CURRENCY_CODE)
          OR
          QPH.CURRENCY_CODE IS NULL) -- optional currency
   AND   (QPL.MODIFIER_LEVEL_CODE = QPLINES.LINE_TYPE_CODE
          OR
          QPL.MODIFIER_LEVEL_CODE = G_LINE_GROUP AND QPLINES.LINE_TYPE_CODE <> G_ORDER_LEVEL)
   AND   QPH.SOURCE_SYSTEM_CODE = QPRS.SOURCE_SYSTEM_CODE
   AND   QPLINES.REQUEST_TYPE_CODE   = QPRS.REQUEST_TYPE_CODE
   AND   QPH.ACTIVE_FLAG = G_YES
   AND   QPLAT_PROD.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
   ORDER BY 1,2;
Line: 19160

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: 19170

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: 19177

INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,LINE_INDEX,1
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,PRICING_PHASE_ID,2
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,ASK_FOR_FLAG,3
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,CREATED_FROM_LIST_LINE_TYPE,4
*/
CURSOR l_chk_deleted_pbh_cur(p_line_index IN PLS_INTEGER,
                             p_pricing_phase_id NUMBER) IS
SELECT 'X'
FROM qp_npreq_ldets_tmp
WHERE created_from_list_line_type = G_PRICE_BREAK_TYPE
AND   line_index = p_line_index
AND   pricing_phase_id = p_pricing_phase_id
AND   pricing_status_code <> G_STATUS_NEW;
Line: 19284

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

              INSERT_LDETS(P_LINE_DETAIL_INDEX   => L_LINE_DETAIL_INDEX,
                   P_LINE_DETAIL_TYPE_CODE       => 'NULL',
                   P_LINE_INDEX                  => J.LINE_INDEX,
                   P_CREATED_FROM_LIST_HEADER_ID => L_LIST_HEADER_ID,
                   P_CREATED_FROM_LIST_LINE_ID   => K.LIST_LINE_ID,
                   P_CREATED_FROM_LIST_TYPE_CODE => K.LIST_TYPE_CODE,
                   P_CREATED_FROM_SQL            => 'LHS_MODIFIER ',
                   P_PRICING_PHASE_ID            => K.PRICING_PHASE_ID,
                   P_CREATED_FROM_LIST_LINE_TYPE => K.LIST_LINE_TYPE_CODE,
                   P_PRICING_GROUP_SEQUENCE      => K.PRICING_GROUP_SEQUENCE,
                   P_OPERAND_CALCULATION_CODE    => K.ARITHMETIC_OPERATOR,
                   P_OPERAND_VALUE               => K.OPERAND,
                   P_PRICING_STATUS_CODE         => G_STATUS_NEW,
                   P_PROCESSED_FLAG              => G_NOT_PROCESSED,
                   P_AUTOMATIC_FLAG              => K.AUTOMATIC_FLAG,
                   P_APPLIED_FLAG                => K.APPLIED_FLAG, -- fix bug 1915355
                   P_OVERRIDE_FLAG               => K.OVERRIDE_FLAG,
                   P_PRINT_ON_INVOICE_FLAG       => K.PRINT_ON_INVOICE_FLAG,
                   P_MODIFIER_LEVEL_CODE         => K.MODIFIER_LEVEL_CODE,
                   P_BENEFIT_QTY                 => K.BENEFIT_QTY,
                   P_BENEFIT_UOM_CODE            => K.BENEFIT_UOM_CODE,
                   P_LIST_LINE_NO                => K.LIST_LINE_NO,
                   P_ACCRUAL_FLAG                => K.ACCRUAL_FLAG,
                   P_ACCRUAL_CONVERSION_RATE     => K.ACCRUAL_CONVERSION_RATE,
                   P_ESTIM_ACCRUAL_RATE          => K.ESTIM_ACCRUAL_RATE,
                   P_RECURRING_FLAG              => K.RECURRING_FLAG,
                   P_INCOMPATABLILITY_GRP_CODE   => K.INCOMPATIBILITY_GRP_CODE,
                   P_PRICE_FORMULA_ID            => K.PRICE_BY_FORMULA_ID,
                   P_PRODUCT_PRECEDENCE          => K.PRODUCT_PRECEDENCE,
                   P_PRIMARY_UOM_FLAG            => K.PRIMARY_UOM_FLAG,
                   P_ASK_FOR_FLAG                => K.ASK_FOR_FLAG,
                   P_ROUNDING_FACTOR             => K.ROUNDING_FACTOR,
                   X_STATUS_CODE                 => L_STATUS_CODE,
                   X_STATUS_TEXT                 => L_STATUS_TEXT);
Line: 19341

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

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

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

              INSERT_LDETS(P_LINE_DETAIL_INDEX   => L_LINE_DETAIL_INDEX,
                   P_LINE_DETAIL_TYPE_CODE       => 'NULL',
                   P_LINE_INDEX                  => J.LINE_INDEX,
                   P_CREATED_FROM_LIST_HEADER_ID => K.LIST_HEADER_ID,
                   P_CREATED_FROM_LIST_LINE_ID   => K.LIST_LINE_ID,
                   P_CREATED_FROM_LIST_TYPE_CODE => K.LIST_TYPE_CODE,
                   P_CREATED_FROM_SQL            => 'LHS_MODIFIER ',
                   P_PRICING_PHASE_ID            => K.PRICING_PHASE_ID,
                   P_CREATED_FROM_LIST_LINE_TYPE => K.LIST_LINE_TYPE_CODE,
                   P_PRICING_GROUP_SEQUENCE      => K.PRICING_GROUP_SEQUENCE,
                   P_OPERAND_CALCULATION_CODE    => K.ARITHMETIC_OPERATOR,
                   P_OPERAND_VALUE               => K.OPERAND,
                   P_PRICING_STATUS_CODE         => G_STATUS_NEW,
                   P_PROCESSED_FLAG              => G_NOT_PROCESSED,
                   P_AUTOMATIC_FLAG              => K.AUTOMATIC_FLAG,
                   P_APPLIED_FLAG                => K.APPLIED_FLAG,
                   P_OVERRIDE_FLAG               => K.OVERRIDE_FLAG,
                   P_PRINT_ON_INVOICE_FLAG       => K.PRINT_ON_INVOICE_FLAG,
                   P_MODIFIER_LEVEL_CODE         => K.MODIFIER_LEVEL_CODE,
                   P_BENEFIT_QTY                 => K.BENEFIT_QTY,
                   P_BENEFIT_UOM_CODE            => K.BENEFIT_UOM_CODE,
                   P_LIST_LINE_NO                => K.LIST_LINE_NO,
                   P_ACCRUAL_FLAG                => K.ACCRUAL_FLAG,
                   P_ACCRUAL_CONVERSION_RATE     => K.ACCRUAL_CONVERSION_RATE,
                   P_ESTIM_ACCRUAL_RATE          => K.ESTIM_ACCRUAL_RATE,
                   P_RECURRING_FLAG              => K.RECURRING_FLAG,
                   P_INCOMPATABLILITY_GRP_CODE   => K.INCOMPATIBILITY_GRP_CODE,
                   P_PRICE_FORMULA_ID            => K.PRICE_BY_FORMULA_ID,
                   P_PRODUCT_PRECEDENCE          => K.PRODUCT_PRECEDENCE,
                   P_PRIMARY_UOM_FLAG            => K.PRIMARY_UOM_FLAG,
                   P_ASK_FOR_FLAG                => K.ASK_FOR_FLAG,
                   P_ROUNDING_FACTOR             => K.ROUNDING_FACTOR,
                   X_STATUS_CODE                 => L_STATUS_CODE,
                   X_STATUS_TEXT                 => L_STATUS_TEXT);
Line: 19475

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

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

            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: 19599

  G_LINE_INDEX_TBL_P.delete;
Line: 19600

  G_LIST_LINE_ID_TBL_P.delete;
Line: 19601

  G_LIST_HEADER_ID_TBL_P.delete;
Line: 19602

  G_OPER_CALCULATION_CODE_TBL_P.delete;
Line: 19603

  G_OPERAND_VALUE_TBL_P.delete;
Line: 19604

  G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
Line: 19605

  G_LIST_LINE_TYPE_TBL_P.delete;
Line: 19606

  G_PRICING_PHASE_ID_TBL_P.delete;
Line: 19607

  G_AUTOMATIC_FLAG_TBL_P.delete;
Line: 19608

  G_INCOMP_GRP_CODE_TBL_P.delete;
Line: 19609

  G_PRICE_FORMULA_ID_TBL_P.delete;
Line: 19610

  G_PRODUCT_PRECEDENCE_TBL_P.delete;
Line: 19611

  G_PRIMARY_UOM_FLAG_TBL_P.delete;
Line: 19612

  G_MODIFIER_LEVEL_CODE_TBL_P.delete;
Line: 19613

  G_LIST_LINE_NO_TBL_P.delete;
Line: 19614

  G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 19615

  G_EXCLUDER_FLAG_TBL_P.delete;
Line: 19616

  G_LIST_TYPE_CODE_TBL_P.delete;
Line: 19617

  G_ROUNDING_FACTOR_TBL_P.delete;
Line: 19618

  G_CONTEXT_TBL_P.delete;
Line: 19619

  G_ATTRIBUTE_TBL_P.delete;
Line: 19620

  G_VALUE_FROM_TBL_P.delete;
Line: 19621

  G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 19622

  G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 19623

  G_APPLIED_FLAG_TBL_P.delete;
Line: 19624

  G_CONTEXT_TBL_PR.delete;
Line: 19625

  G_ATTRIBUTE_TBL_PR.delete;
Line: 19626

  G_VALUE_FROM_TBL_PR.delete;
Line: 19627

  G_SETUP_VALUE_FROM_TBL_PR.delete;
Line: 19628

  G_SETUP_VALUE_TO_TBL_PR.delete;
Line: 19629

  G_ATTRIBUTE_LEVEL_TBL_PR.delete;
Line: 19630

  G_ATTRIBUTE_TYPE_TBL_PR.delete;
Line: 19631

  G_OPERATOR_TYPE_TBL_PR.delete;
Line: 19632

  G_DATATYPE_TBL_PR.delete;
Line: 19633

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

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

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

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

  G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
Line: 19641

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

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

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

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

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

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

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

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

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

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

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

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

  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: 19933

  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: 19972

   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: 20028

  G_LINE_INDEX_TBL_P.delete;
Line: 20029

  G_LIST_LINE_ID_TBL_P.delete;
Line: 20030

  G_OPER_CALCULATION_CODE_TBL_P.delete;
Line: 20031

  G_OPERAND_VALUE_TBL_P.delete;
Line: 20032

  G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
Line: 20033

  G_LIST_LINE_TYPE_TBL_P.delete;
Line: 20034

  G_PRICING_PHASE_ID_TBL_P.delete;
Line: 20035

  G_AUTOMATIC_FLAG_TBL_P.delete;
Line: 20036

  G_OVERRIDE_FLAG_TBL_P.delete;
Line: 20037

  G_PRINT_ON_INVOICE_FLAG_TBL_P.delete;
Line: 20038

  G_INCOMP_GRP_CODE_TBL_P.delete;
Line: 20039

  G_PRICE_FORMULA_ID_TBL_P.delete;
Line: 20040

  G_PRODUCT_PRECEDENCE_TBL_P.delete;
Line: 20041

  G_PRIMARY_UOM_FLAG_TBL_P.delete;
Line: 20042

  G_MODIFIER_LEVEL_CODE_TBL_P.delete;
Line: 20043

  G_LIST_LINE_NO_TBL_P.delete;
Line: 20044

  G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 20045

  G_EXCLUDER_FLAG_TBL_P.delete;
Line: 20046

  G_LIST_TYPE_CODE_TBL_P.delete;
Line: 20047

  G_ROUNDING_FACTOR_TBL_P.delete;
Line: 20048

  G_LIST_HEADER_ID_TBL_P.delete;
Line: 20049

  G_CONTEXT_TBL_P.delete;
Line: 20050

  G_ATTRIBUTE_TBL_P.delete;
Line: 20051

  G_VALUE_FROM_TBL_P.delete;
Line: 20052

  G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 20053

  G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 20054

  G_APPLIED_FLAG_TBL_P.delete;
Line: 20055

  G_CONTEXT_TBL_PR.delete;
Line: 20056

  G_ATTRIBUTE_TBL_PR.delete;
Line: 20057

  G_VALUE_FROM_TBL_PR.delete;
Line: 20058

  G_SETUP_VALUE_FROM_TBL_PR.delete;
Line: 20059

  G_SETUP_VALUE_TO_TBL_PR.delete;
Line: 20060

  G_ATTRIBUTE_LEVEL_TBL_PR.delete;
Line: 20061

  G_ATTRIBUTE_TYPE_TBL_PR.delete;
Line: 20062

  G_OPERATOR_TYPE_TBL_PR.delete;
Line: 20063

  G_CONTEXT_TBL_Q.delete;
Line: 20064

  G_ATTRIBUTE_TBL_Q.delete;
Line: 20065

  G_VALUE_FROM_TBL_Q.delete;
Line: 20066

  G_PRICING_ATTR_FLAG_TBL_Q.delete;
Line: 20067

  G_GROUPING_NO_TBL_Q.delete;
Line: 20068

  G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
Line: 20069

  G_DATATYPE_TBL_Q.delete;
Line: 20070

  G_SETUP_VALUE_FROM_TBL_Q.delete;
Line: 20071

  G_SETUP_VALUE_TO_TBL_Q.delete;
Line: 20072

  G_OPERATOR_TYPE_TBL_Q .delete;
Line: 20073

  G_DATATYPE_TBL_PR.delete;
Line: 20074

  G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 20075

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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: 20459

  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: 20496

              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: 20584

              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: 20599

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

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

      	       FETCH l_chk_deleted_pbh_cur INTO l_dummy;
Line: 20632

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

               CLOSE l_chk_deleted_pbh_cur;*/
Line: 20641

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

SELECT a.LIST_HEADER_ID,
       a.QUALIFIER_GROUPING_NO,
       a.QUALIFIER_GROUP_CNT,
       a.UNIQUE_KEY,
       -- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
       COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
       1  --7038849
FROM   QP_PREQ_QUAL_TMP a
WHERE  a.LIST_LINE_ID = -1
AND    a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND    a.PRICING_PHASE_ID = p_pricing_phase_id
AND    a.QUALIFIER_GROUPING_NO = -1  --7038849
GROUP  BY a.LIST_HEADER_ID, a.QUALIFIER_GROUPING_NO,a.QUALIFIER_GROUP_CNT,a.UNIQUE_KEY
UNION ALL -- 7038849
SELECT a.LIST_HEADER_ID,
       a.QUALIFIER_GROUPING_NO,
       a.QUALIFIER_GROUP_CNT,
       a.UNIQUE_KEY,
       -- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
       COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
       2  --7038849
FROM   QP_PREQ_QUAL_TMP a
WHERE  a.LIST_LINE_ID = -1
AND    a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND    a.PRICING_PHASE_ID = p_pricing_phase_id
AND    a.QUALIFIER_GROUPING_NO <> -1  --7038849
GROUP  BY a.LIST_HEADER_ID, a.QUALIFIER_GROUPING_NO,a.QUALIFIER_GROUP_CNT,a.UNIQUE_KEY
ORDER  BY 1,6; --7038849
Line: 20774

SELECT a.LINE_INDEX,
       a.LIST_HEADER_ID,
       a.QUALIFIER_GROUPING_NO,
       a.QUALIFIER_GROUP_CNT,
       a.UNIQUE_KEY,
       -- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
       COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
       1 -- 7038849
FROM   QP_PREQ_QUAL_TMP a
WHERE  a.LIST_LINE_ID = -1
AND    a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND    a.PRICING_PHASE_ID = p_pricing_phase_id
--AND    a.LINE_INDEX > 0
AND    a.QUALIFIER_GROUPING_NO = -1 --7038849
GROUP  BY a.LINE_INDEX , a.LIST_HEADER_ID, a.QUALIFIER_GROUPING_NO,a.QUALIFIER_GROUP_CNT,a.UNIQUE_KEY
UNION ALL   --7038849
SELECT a.LINE_INDEX,
       a.LIST_HEADER_ID,
       a.QUALIFIER_GROUPING_NO,
       a.QUALIFIER_GROUP_CNT,
       a.UNIQUE_KEY,
       -- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
       COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
       2 -- 7038849
FROM   QP_PREQ_QUAL_TMP a
WHERE  a.LIST_LINE_ID = -1
AND    a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND    a.PRICING_PHASE_ID = p_pricing_phase_id
--AND    a.LINE_INDEX > 0
AND    a.QUALIFIER_GROUPING_NO <> -1 --7038849
GROUP  BY a.LINE_INDEX , a.LIST_HEADER_ID, a.QUALIFIER_GROUPING_NO,a.QUALIFIER_GROUP_CNT,a.UNIQUE_KEY
ORDER  BY 1,2,7;  --7038849
Line: 20812

SELECT a.LIST_HEADER_ID,
       a.LIST_LINE_ID,
       a.QUALIFIER_GROUPING_NO,
       a.QUALIFIER_GROUP_CNT,
       a.HEADER_QUALS_EXIST_FLAG,
       a.UNIQUE_KEY,
       -- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
       COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
       1  --7038849
FROM   QP_PREQ_QUAL_TMP a
WHERE  a.LIST_LINE_ID  > 0
AND    a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND    a.PRICING_PHASE_ID = p_pricing_phase_id
AND    a.QUALIFIER_GROUPING_NO = -1  --7038849
GROUP  BY a.LIST_HEADER_ID , a.LIST_LINE_ID,a.QUALIFIER_GROUPING_NO,a.QUALIFIER_GROUP_CNT,a.HEADER_QUALS_EXIST_FLAG,
		a.UNIQUE_KEY
UNION ALL   -- 7038849
SELECT a.LIST_HEADER_ID,
       a.LIST_LINE_ID,
       a.QUALIFIER_GROUPING_NO,
       a.QUALIFIER_GROUP_CNT,
       a.HEADER_QUALS_EXIST_FLAG,
       a.UNIQUE_KEY,
       -- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
       COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
       2  --7038849
FROM   QP_PREQ_QUAL_TMP a
WHERE  a.LIST_LINE_ID  > 0
AND    a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
AND    a.PRICING_PHASE_ID = p_pricing_phase_id
AND    a.QUALIFIER_GROUPING_NO <> -1  --7038849
GROUP  BY a.LIST_HEADER_ID , a.LIST_LINE_ID,a.QUALIFIER_GROUPING_NO,a.QUALIFIER_GROUP_CNT,a.HEADER_QUALS_EXIST_FLAG,
		a.UNIQUE_KEY
ORDER  BY 1,2,8;  --7038849
Line: 20853

SELECT /*+ INDEX (a QP_PREQ_QUAL_TMP_N1) */ a.LINE_INDEX,
       a.LIST_HEADER_ID,
       a.LIST_LINE_ID,
       a.QUALIFIER_GROUPING_NO,
       a.QUALIFIER_GROUP_CNT,
       a.HEADER_QUALS_EXIST_FLAG,
       a.UNIQUE_KEY,
       -- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
       COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
       1
FROM   QP_PREQ_QUAL_TMP a
WHERE  LIST_LINE_ID  > 0
AND    a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
--AND    a.LINE_INDEX > 0
AND    a.PRICING_PHASE_ID = p_pricing_phase_id
AND    a.QUALIFIER_GROUPING_NO = -1  --7038849
GROUP  BY a.LINE_INDEX, a.LIST_HEADER_ID , a.LIST_LINE_ID,a.QUALIFIER_GROUPING_NO,
		a.QUALIFIER_GROUP_CNT,a.HEADER_QUALS_EXIST_FLAG,a.UNIQUE_KEY
UNION ALL  --7038849
SELECT /*+ INDEX (a QP_PREQ_QUAL_TMP_N1) */ a.LINE_INDEX,
       a.LIST_HEADER_ID,
       a.LIST_LINE_ID,
       a.QUALIFIER_GROUPING_NO,
       a.QUALIFIER_GROUP_CNT,
       a.HEADER_QUALS_EXIST_FLAG,
       a.UNIQUE_KEY,
       -- COUNT(distinct qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP [julin/3527596,4274099]
       COUNT(qualifier_attribute_context || qualifier_attribute || setup_value_from ) NO_OF_QUALIFIERS_IN_GRP,
       2
FROM   QP_PREQ_QUAL_TMP a
WHERE  LIST_LINE_ID  > 0
AND    a.PRICING_STATUS_CODE = G_STATUS_UNCHANGED
--AND    a.LINE_INDEX > 0
AND    a.PRICING_PHASE_ID = p_pricing_phase_id
AND    a.QUALIFIER_GROUPING_NO <> -1  --7038849
GROUP  BY a.LINE_INDEX, a.LIST_HEADER_ID , a.LIST_LINE_ID,a.QUALIFIER_GROUPING_NO,
		a.QUALIFIER_GROUP_CNT,a.HEADER_QUALS_EXIST_FLAG,a.UNIQUE_KEY
ORDER  BY 1,2,3,9;  --7038849
Line: 20897

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: 20912

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: 20928

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: 20939

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

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

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

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

    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: 21113

  l_hdr_del_tbl.delete;
Line: 21167

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

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

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

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

    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: 21287

  l_line_del_tbl.delete;
Line: 21342

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

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

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

    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: 21433

  l_hdr_del_tbl.delete;
Line: 21488

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

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

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

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

    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: 21624

  l_line_del_tbl.delete;
Line: 21639

  |PROCEDURE SELECT_MODIFIERS
  +----------------------------------------------------------
*/
PROCEDURE SELECT_MODIFIERS(p_pricing_phase_id     IN  NUMBER,
                           p_freeze_override_flag IN  VARCHAR2,
                           x_status_code          OUT NOCOPY VARCHAR2,
                           x_status_text          OUT NOCOPY VARCHAR2)
AS
/*
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,QP_PREQ_QUAL_TMP_N5,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,QP_PREQ_QUAL_TMP_N5,SEARCH_IND,2

INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,QP_PRICING_ATTRIBUTES_N7,LIST_HEADER_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,QP_PRICING_ATTRIBUTES_N7,QUALIFICATION_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,QP_PRICING_ATTRIBUTES_N7,PRICING_PHASE_ID,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,QP_PRICING_ATTRIBUTES_N7,LIST_LINE_ID,4

INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6

INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,QP_LIST_LINES_PK,LIST_LINE_ID,1

INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_cur,qp_npreq_lines_tmp_N1,LINE_INDEX,1
*/

CURSOR l_prod_qual_cur (p_pricing_phase_id NUMBER, p_list_header_id NUMBER, p_list_line_id NUMBER, p_line_index NUMBER) IS
-- Product and Qualifier Only. No pricing
select /*+ ORDERED USE_NL(QPPROD QPLATPR QPL ) index(QPPROD QP_PRICING_ATTRIBUTES_N7) index(qplatpr qp_preq_line_attrs_tmp_n2) l_prod_qual_cur_mod */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.validated_flag,
       qplatpr.applied_flag,
       qplatpr.attribute_level               PRODUCT_ATTRIBUTE_LEVEL,
       qplatpr.attribute_type                PRODUCT_ATTRIBUTE_TYPE,
       qplatpr.context                       PRODUCT_ATTRIBUTE_CONTEXT,
       qplatpr.attribute                     PRODUCT_ATTRIBUTE,
       qplatpr.value_from                    PRODUCT_ATTR_VALUE,
       qpprod.product_attr_value             PRODUCT_SETUP_VALUE,
       qplatpr.pricing_attr_flag             PRODUCT_PRICING_ATTR_FLAG,
       qpprod.product_uom_code               PRODUCT_UOM_CODE,
       qpprod.excluder_flag,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator operand_calculation_code,
       qpl.operand             operand_value,
       qpl.net_amount_flag,  --IT net_amount 2720717
       qpl.pricing_group_sequence,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.override_flag,
       qpl.benefit_qty,
       qpl.benefit_uom_code,
       qpl.list_line_no,
       qpl.accrual_flag,
       qpl.accrual_conversion_rate,
       qpl.estim_accrual_rate,
       qpq.ask_for_flag,
       qpq.created_from_list_type,
       qpq.header_limit_exists,
       qpl.limit_exists_flag line_limit_exists,
       decode(p_list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE,   --HQ is header level qualifier
       qpl.charge_type_code,
       qpl.charge_subtype_code,
       qpl.accum_context,           -- accum range break
       qpl.accum_attribute,         -- accum range break
       qpl.accum_attr_run_src_flag  -- accum range break
from
       (select /*+ index (qpqq QP_PREQ_QUAL_TMP_N5) */
        distinct line_index, list_header_id, list_line_id, ask_for_flag,created_from_list_type,header_limit_exists
        from qp_preq_qual_tmp qpqq
        where pricing_status_code = G_STATUS_UNCHANGED
        and pricing_phase_id = p_pricing_phase_id
        and search_ind = 1
        and list_line_id > 0 ) qpq,
       qp_pricing_attributes qpprod,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_list_lines qpl,
       qp_npreq_lines_tmp qplines
where
      qpprod.list_header_id = qpq.list_header_id
and   qpprod.list_line_id = qpq.list_line_id
and   qpl.list_line_id   = qpprod.list_line_id
and   (qpl.modifier_level_code = qplines.line_type_code
       OR
       (qpl.modifier_level_code = G_LINE_GROUP and
        nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and   qplines.pricing_effective_date BETWEEN
         nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
           and nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
and   qplines.priced_uom_code = nvl(qpprod.product_uom_code,qplines.priced_uom_code)
and   qpprod.pricing_phase_id = p_pricing_phase_id
and   qpprod.QUALIFICATION_IND in (QP_PREQ_GRP.G_YES_PROD_LINE_QUAL_IND,
						  QP_PREQ_GRP.G_YES_PROD_HDR_LINE_QUAL_IND)
and   qpprod.product_attribute_context = qplatpr.context
and   qpprod.product_attribute = qplatpr.attribute
and   qpprod.product_attr_value = qplatpr.value_from
and   qpprod.excluder_flag = G_NO
and   qplines.line_index = qplatpr.line_index
and   qplatpr.line_index = qpq.line_index
--and   qpq.pricing_status_code = G_STATUS_UNCHANGED
--and   qpq.search_ind = 1
and   qplatpr.attribute_type='PRODUCT'
and   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
-- price book
and   (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
       qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
                                       G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
       or
       nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
union all
select /*+ ORDERED USE_NL(QPLATPR QPPROD QPL) index(QPPROD QP_PRICING_ATTRIBUTES_N5) index(qplatpr qp_preq_line_attrs_tmp_n1) l_prod_qual_cur_mod */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.validated_flag,
       qplatpr.applied_flag,
       qplatpr.attribute_level               PRODUCT_ATTRIBUTE_LEVEL,
       qplatpr.attribute_type                PRODUCT_ATTRIBUTE_TYPE,
       qplatpr.context                       PRODUCT_ATTRIBUTE_CONTEXT,
       qplatpr.attribute                     PRODUCT_ATTRIBUTE,
       qplatpr.value_from                    PRODUCT_ATTR_VALUE,
       qpprod.product_attr_value             PRODUCT_SETUP_VALUE,
       qplatpr.pricing_attr_flag             PRODUCT_PRICING_ATTR_FLAG,
       qpprod.product_uom_code               PRODUCT_UOM_CODE,
       qpprod.excluder_flag,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator operand_calculation_code,
       qpl.operand             operand_value,
       qpl.net_amount_flag,  --IT net_amount 2720717
       qpl.pricing_group_sequence,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.override_flag,
       qpl.benefit_qty,
       qpl.benefit_uom_code,
       qpl.list_line_no,
       qpl.accrual_flag,
       qpl.accrual_conversion_rate,
       qpl.estim_accrual_rate,
       qpq.ask_for_flag,
       qpq.created_from_list_type,
       qpq.header_limit_exists,
       qpl.limit_exists_flag line_limit_exists,
       decode(p_list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE,   --HQ is header level qualifier
       qpl.charge_type_code,
       qpl.charge_subtype_code,
       qpl.accum_context,           -- accum range break
       qpl.accum_attribute,         -- accum range break
       qpl.accum_attr_run_src_flag  -- accum range break
from
       (select /*+ index (qpqq QP_PREQ_QUAL_TMP_N5) */
        distinct line_index, list_header_id, list_line_id, ask_for_flag,created_from_list_type,header_limit_exists
        from qp_preq_qual_tmp qpqq
        where pricing_status_code = G_STATUS_UNCHANGED
        and pricing_phase_id = p_pricing_phase_id
        and search_ind = 1
        and list_line_id < 0 ) qpq,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod,
       qp_list_lines qpl,
       qp_npreq_lines_tmp qplines
where
      qpprod.list_header_id = qpq.list_header_id
and   qpl.list_line_id   = qpprod.list_line_id
and   (qpl.modifier_level_code = qplines.line_type_code
       OR
       (qpl.modifier_level_code = G_LINE_GROUP and
        nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and   qplines.pricing_effective_date BETWEEN
         nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
           and nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
and   qplines.priced_uom_code = nvl(qpprod.product_uom_code,qplines.priced_uom_code)
and   qpprod.pricing_phase_id = p_pricing_phase_id
and   qpprod.QUALIFICATION_IND =  QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
and   qpprod.product_attribute_context = qplatpr.context
and   qpprod.product_attribute = qplatpr.attribute
and   qpprod.product_attr_value = qplatpr.value_from
and   qpprod.excluder_flag = G_NO
and   qplines.line_index = qplatpr.line_index
and   qplatpr.line_index = qpq.line_index
and   qplatpr.attribute_type='PRODUCT'
and   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
--and   qpq.pricing_status_code=G_STATUS_UNCHANGED
--and   qpq.search_ind = 1
-- price book
and   (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
       qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
                                       G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
       or
       nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
order by 4,2;
Line: 21848

INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,PRICING_PHASE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,QUALIFICATION_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE_CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTR_VALUE,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,EXCLUDER_FLAG,6
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,LIST_HEADER_ID,7
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PRICING_ATTRIBUTES_N5,LIST_LINE_ID,8

INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PREQ_QUAL_TMP_N5,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PREQ_QUAL_TMP_N5,SEARCH_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PREQ_QUAL_TMP_N5,LIST_HEADER_ID,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PREQ_QUAL_TMP_N5,LIST_LINE_ID,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_PREQ_QUAL_TMP_N5,LINE_INDEX,5

-- Used for qplatpr and qplatpc
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6

INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,QP_LIST_LINES_PK,LIST_LINE_ID,1

INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_lines_tmp_U1,LINE_INDEX,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_lines_tmp_U1,LINE_TYPE_CODE,2

INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_PREQ_QUAL_TMP_N5,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_PREQ_QUAL_TMP_N5,SEARCH_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_PREQ_QUAL_TMP_N5,LINE_INDEX,5

INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_PRICING_ATTRIBUTES_N7,LIST_HEADER_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_PRICING_ATTRIBUTES_N7,QUALIFICATION_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_PRICING_ATTRIBUTES_N7,PRICING_PHASE_ID,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_PRICING_ATTRIBUTES_N7,LIST_LINE_ID,4

-- Used for qplatpr and qplatpc
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel1,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6

INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,QP_LIST_LINES_PK,LIST_LINE_ID,1

INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,qp_npreq_lines_tmp_U1,LINE_INDEX,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_qual_pric_cur_sel2,qp_npreq_lines_tmp_U1,LINE_TYPE_CODE,2
*/
CURSOR l_prod_qual_pric_cur(p_pricing_phase_id NUMBER, p_list_header_id NUMBER, p_list_line_id NUMBER,
					   p_line_index NUMBER) IS
--Product+Qualifiers+Pricing
select /*+ ORDERED USE_NL(QPPROD QPLATPR QPLATPC QPL ) index(QPPROD QP_PRICING_ATTRIBUTES_N7) index(qplatpr qp_preq_line_attrs_tmp_N2) index(qplatpc qp_preq_line_attrs_tmp_N2) l_prod_qual_pric_cur_mod */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.validated_flag,
       qplatpr.applied_flag,
--for product attrs
       qplatpr.attribute_level               PRODUCT_ATTRIBUTE_LEVEL,
       qplatpr.attribute_type                PRODUCT_ATTRIBUTE_TYPE,
       qplatpr.context                       PRODUCT_ATTRIBUTE_CONTEXT,
       qplatpr.attribute                     PRODUCT_ATTRIBUTE,
       qplatpr.value_from                    PRODUCT_ATTR_VALUE,
       qpprod.product_attr_value             PRODUCT_SETUP_VALUE,
       qplatpr.pricing_attr_flag             PRODUCT_PRICING_ATTR_FLAG,
       qpprod.product_uom_code               PRODUCT_UOM_CODE,
       qpprod.excluder_flag,
--for pricing attrs
       qplatpc.attribute_level               PRICING_ATTRIBUTE_LEVEL,
       qplatpc.attribute_type                PRICING_ATTRIBUTE_TYPE,
       qplatpc.context                       PRICING_ATTRIBUTE_CONTEXT,
       qplatpc.attribute                     PRICING_ATTRIBUTE,
       qplatpc.value_from                    PRICING_ATTR_VALUE,
       qpprod.pricing_attr_value_from        PRICING_SETUP_VALUE_FROM,
       qpprod.pricing_attr_value_to          PRICING_SETUP_VALUE_TO,
       qpprod.comparison_operator_code       PRICING_COMPARISON_OPERATOR,
       qpprod.pricing_attribute_datatype     PRICING_DATATYPE,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator operand_calculation_code,
       qpl.operand             operand_value,
       qpl.net_amount_flag,  --IT net_amount 2720717
       qpl.pricing_group_sequence,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.override_flag,
       qpl.benefit_qty,
       qpl.benefit_uom_code,
       qpl.list_line_no,
       qpl.accrual_flag,
       qpl.accrual_conversion_rate,
       qpl.estim_accrual_rate,
       qpq.ask_for_flag,
       qpq.created_from_list_type,
       qpq.header_limit_exists,
       qpl.limit_exists_flag line_limit_exists,
       decode(p_list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE,
       qpl.charge_type_code,
       qpl.charge_subtype_code,
       qpl.accum_context,           -- accum range break
       qpl.accum_attribute,         -- accum range break
       qpl.accum_attr_run_src_flag  -- accum range break
from
       (select /*+ index (qpqq QP_PREQ_QUAL_TMP_N5) */
        distinct line_index, list_header_id, list_line_id, ask_for_flag,created_from_list_type,header_limit_exists
        from qp_preq_qual_tmp qpqq
        where pricing_status_code = G_STATUS_UNCHANGED
        and pricing_phase_id = p_pricing_phase_id
        and search_ind = 1
        and list_line_id > 0 ) qpq,
       QP_PRICING_ATTRIBUTES qpprod ,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_npreq_line_attrs_tmp qplatpc,
       qp_list_lines qpl ,
       qp_npreq_lines_tmp qplines
where
      qpprod.list_header_id = qpq.list_header_id
and   qpprod.list_line_id = qpq.list_line_id
and   qpl.list_line_id   = qpprod.list_line_id
and   (qpl.modifier_level_code = qplines.line_type_code
       OR
       (qpl.modifier_level_code = G_LINE_GROUP and
        nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and   qplines.pricing_effective_date BETWEEN
         nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
      AND nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
and   qplines.priced_uom_code = nvl(qpprod.product_uom_code,qplines.priced_uom_code)
and   qpl.QUALIFICATION_IND in (QP_PREQ_GRP.G_YES_PROD_PRIC_LINE_QUAL_IND,
						  QP_PREQ_GRP.G_YES_PRIC_HDR_LINE_QUAL_IND)
and qpl.list_line_type_code <> 'PLL'
and   qpprod.pricing_phase_id = p_pricing_phase_id
and   qpprod.QUALIFICATION_IND in (QP_PREQ_GRP.G_YES_PROD_PRIC_LINE_QUAL_IND,
						  QP_PREQ_GRP.G_YES_PRIC_HDR_LINE_QUAL_IND)
and    qpprod.product_attribute_context = qplatpr.context
and    qpprod.product_attribute = qplatpr.attribute
and    qpprod.product_attr_value = qplatpr.value_from
and 	qpprod.excluder_flag = G_NO
and    qpprod.pricing_attribute_context = qplatpc.context
and    qpprod.pricing_attribute = qplatpc.attribute
and    (qpprod.pricing_attr_value_from = qplatpc.value_from
        or qpprod.comparison_operator_code IN ('NOT =',G_OPERATOR_BETWEEN))
        --or qpl.price_break_type_code = G_RECURRING_BREAK)
and   qpl.pricing_phase_id = p_pricing_phase_id
and qplines.line_index = qpq.line_index
and   qplatpr.line_index = qpq.line_index
and   qplatpc.line_index = qplatpr.line_index
and qplatpr.attribute_type='PRODUCT'
and qplatpr.pricing_status_code=G_STATUS_UNCHANGED
and qplatpc.attribute_type = 'PRICING'
and qplatpc.pricing_status_code = G_STATUS_UNCHANGED
--and qpq.pricing_status_code = G_STATUS_UNCHANGED
--and   qpq.search_ind = 1
-- price book
and   (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
       qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
                                       G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
       or
       nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
union all
select /*+ ORDERED USE_NL(QPLATPR QPPROD QPLATPC QPL ) index(QPPROD QP_PRICING_ATTRIBUTES_N5) index(qplatpr qp_preq_line_attrs_tmp_N1) index(qplatpc qp_preq_line_attrs_tmp_N2) l_prod_qual_pric_cur_mod */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.validated_flag,
       qplatpr.applied_flag,
--for product attrs
       qplatpr.attribute_level               PRODUCT_ATTRIBUTE_LEVEL,
       qplatpr.attribute_type                PRODUCT_ATTRIBUTE_TYPE,
       qplatpr.context                       PRODUCT_ATTRIBUTE_CONTEXT,
       qplatpr.attribute                     PRODUCT_ATTRIBUTE,
       qplatpr.value_from                    PRODUCT_ATTR_VALUE,
       qpprod.product_attr_value             PRODUCT_SETUP_VALUE,
       qplatpr.pricing_attr_flag             PRODUCT_PRICING_ATTR_FLAG,
       qpprod.product_uom_code               PRODUCT_UOM_CODE,
       qpprod.excluder_flag,
--for pricing attrs
       qplatpc.attribute_level               PRICING_ATTRIBUTE_LEVEL,
       qplatpc.attribute_type                PRICING_ATTRIBUTE_TYPE,
       qplatpc.context                       PRICING_ATTRIBUTE_CONTEXT,
       qplatpc.attribute                     PRICING_ATTRIBUTE,
       qplatpc.value_from                    PRICING_ATTR_VALUE,
       qpprod.pricing_attr_value_from        PRICING_SETUP_VALUE_FROM,
       qpprod.pricing_attr_value_to          PRICING_SETUP_VALUE_TO,
       qpprod.comparison_operator_code       PRICING_COMPARISON_OPERATOR,
       qpprod.pricing_attribute_datatype     PRICING_DATATYPE,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator operand_calculation_code,
       qpl.operand             operand_value,
       qpl.net_amount_flag,  --IT net_amount 2720717
       qpl.pricing_group_sequence,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.override_flag,
       qpl.benefit_qty,
       qpl.benefit_uom_code,
       qpl.list_line_no,
       qpl.accrual_flag,
       qpl.accrual_conversion_rate,
       qpl.estim_accrual_rate,
       qpq.ask_for_flag,
       qpq.created_from_list_type,
       qpq.header_limit_exists,
       qpl.limit_exists_flag line_limit_exists,
       decode(p_list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE,
       qpl.charge_type_code,
       qpl.charge_subtype_code,
       qpl.accum_context,           -- accum range break
       qpl.accum_attribute,         -- accum range break
       qpl.accum_attr_run_src_flag  -- accum range break
from
       (select /*+ index (qpqq QP_PREQ_QUAL_TMP_N5) */
        distinct line_index, list_header_id, list_line_id, ask_for_flag,created_from_list_type,header_limit_exists
        from qp_preq_qual_tmp qpqq
        where pricing_status_code = G_STATUS_UNCHANGED
        and pricing_phase_id = p_pricing_phase_id
        and search_ind = 1
        and list_line_id < 0 ) qpq,
       qp_npreq_line_attrs_tmp qplatpr,
       QP_PRICING_ATTRIBUTES qpprod ,
       qp_npreq_line_attrs_tmp qplatpc,
       qp_list_lines qpl ,
       qp_npreq_lines_tmp qplines
where
       qpprod.list_header_id = qpq.list_header_id
and    qpl.list_line_id   = qpprod.list_line_id
and   (qpl.modifier_level_code = qplines.line_type_code
       OR
       (qpl.modifier_level_code = G_LINE_GROUP and
        nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and   qplines.pricing_effective_date BETWEEN
         nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
      AND nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
and   qplines.priced_uom_code = nvl(qpprod.product_uom_code,qplines.priced_uom_code)
and   qpl.QUALIFICATION_IND =  QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
and   qpl.list_line_type_code <> 'PLL'
and   qpprod.pricing_phase_id = p_pricing_phase_id
and   qpprod.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
and   qpprod.product_attribute_context = qplatpr.context
and   qpprod.product_attribute = qplatpr.attribute
and   qpprod.product_attr_value = qplatpr.value_from
and   qpprod.excluder_flag = G_NO
and   qpprod.pricing_attribute_context = qplatpc.context
and   qpprod.pricing_attribute = qplatpc.attribute
and    (qpprod.pricing_attr_value_from = qplatpc.value_from
        or qpprod.comparison_operator_code IN ('NOT =',G_OPERATOR_BETWEEN))
and   qpl.pricing_phase_id = p_pricing_phase_id
and   qplines.line_index = qpq.line_index
and   qplatpr.line_index = qpq.line_index
and   qplatpc.line_index = qplatpr.line_index
and   qplatpr.attribute_type='PRODUCT'
and   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
and   qplatpc.attribute_type = 'PRICING'
and   qplatpc.pricing_status_code = G_STATUS_UNCHANGED
--and   qpq.pricing_status_code = G_STATUS_UNCHANGED
--and   qpq.search_ind = 1
-- price book
and   (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
       qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
                                       G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
       or
       nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
order by 4,2;
Line: 22125

INDX,QP_PREQ_GRP.select_modifiers.l_inner_qual_cur,QP_PREQ_QUAL_TMP_N5,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_inner_qual_cur,QP_PREQ_QUAL_TMP_N5,SEARCH_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_inner_qual_cur,QP_PREQ_QUAL_TMP_N5,list_header_id,3
INDX,QP_PREQ_GRP.select_modifiers.l_inner_qual_cur,QP_PREQ_QUAL_TMP_N5,list_line_id,4

INDX,QP_PREQ_GRP.select_modifiers.l_inner_qual_cur,QP_LIST_LINES_N5,PRICING_PHASE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_inner_qual_cur,QP_LIST_LINES_N5,QUALIFICATION_IND,2
*/
CURSOR l_INNER_QUAL_CUR(p_pricing_phase_id NUMBER,
				    p_list_header_id NUMBER,
				    p_list_line_id NUMBER,
				    p_line_index NUMBER,
				    p_pricing_effective_date DATE,
				    p_start_date_active_first DATE,
				    p_start_date_active_second DATE,
				    p_line_type_code VARCHAR2) IS
-- Qualifier Only
-- 5092968, qp_list_lines_n6 replaced with qp_list_lines_pk
select /*+ ORDERED INDEX(qpl,QP_LIST_LINES_PK) l_inner_qual_cur */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qpq.line_index,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator operand_calculation_code,
       qpl.operand             operand_value,
       qpl.net_amount_flag,  --IT net_amount 2720717
       qpl.pricing_group_sequence,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.override_flag,
       qpl.benefit_qty,
       qpl.benefit_uom_code,
       qpl.list_line_no,
       qpl.accrual_flag,
       qpl.accrual_conversion_rate,
       qpl.estim_accrual_rate,
       qpq.ask_for_flag,
       qpq.created_from_list_type,
       qpq.header_limit_exists,
       qpl.limit_exists_flag line_limit_exists,
       decode(p_list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE,
       qpl.charge_type_code,
       qpl.charge_subtype_code,
       qpl.accum_context,           -- accum range break
       qpl.accum_attribute,         -- accum range break
       qpl.accum_attr_run_src_flag  -- accum range break
from
       (select /*+ index (qpqq QP_PREQ_QUAL_TMP_N5) */
        distinct line_index, line_type_code,pricing_effective_date,list_header_id, list_line_id,
                 ask_for_flag, created_from_list_type,header_limit_exists
        from qp_preq_qual_tmp qpqq
        where pricing_status_code = G_STATUS_UNCHANGED
        and pricing_phase_id = p_pricing_phase_id
        and search_ind = 1
        and list_line_id > 0 ) qpq,
       qp_list_lines qpl
where
      qpl.list_header_id = qpq.list_header_id
and   qpl.list_line_id = qpq.list_line_id
and   (qpl.modifier_level_code = qpq.line_type_code
       OR
       (qpl.modifier_level_code = G_LINE_GROUP and
        nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and   qpq.pricing_effective_date BETWEEN
         nvl(TRUNC(qpl.start_date_active), qpq.pricing_effective_date)
      AND nvl(TRUNC(qpl.end_date_active),qpq.pricing_effective_date)
and   qpl.QUALIFICATION_IND in (QP_PREQ_GRP.G_YES_LINE_QUAL_IND,QP_PREQ_GRP.G_YES_HDR_LINE_QUAL_IND)
and   qpl.list_line_type_code <>'PLL'
and   qpl.pricing_phase_id       = p_pricing_phase_id
--and   qpq.pricing_status_code = G_STATUS_UNCHANGED
--and   qpq.search_ind = 1
-- price book
and   (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
       qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
                                       G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
       or
       nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
union all
select /*+ ORDERED INDEX(qpl,QP_LIST_LINES_N5) l_inner_qual_cur */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qpq.line_index,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator operand_calculation_code,
       qpl.operand             operand_value,
       qpl.net_amount_flag,  --IT net_amount 2720717
       qpl.pricing_group_sequence,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.override_flag,
       qpl.benefit_qty,
       qpl.benefit_uom_code,
       qpl.list_line_no,
       qpl.accrual_flag,
       qpl.accrual_conversion_rate,
       qpl.estim_accrual_rate,
       qpq.ask_for_flag,
       qpq.created_from_list_type,
       qpq.header_limit_exists,
       qpl.limit_exists_flag line_limit_exists,
       decode(p_list_line_id, -1, 'HQ', 'LQ') QUALIFIER_TYPE,
       qpl.charge_type_code,
       qpl.charge_subtype_code,
       qpl.accum_context,           -- accum range break
       qpl.accum_attribute,         -- accum range break
       qpl.accum_attr_run_src_flag  -- accum range break
from
       (select /*+ index (qpqq QP_PREQ_QUAL_TMP_N5) */
        distinct line_index, line_type_code,pricing_effective_date,list_header_id, list_line_id,
                 ask_for_flag, created_from_list_type,header_limit_exists
        from qp_preq_qual_tmp qpqq
        where pricing_status_code = G_STATUS_UNCHANGED
        and pricing_phase_id = p_pricing_phase_id
        and search_ind = 1
        and list_line_id < 0 ) qpq,
        qp_list_lines qpl
where
      qpl.list_header_id = qpq.list_header_id
and   (qpl.modifier_level_code = qpq.line_type_code
       OR
       (qpl.modifier_level_code = G_LINE_GROUP and
        nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and   qpq.pricing_effective_date BETWEEN
         nvl(TRUNC(qpl.start_date_active), qpq.pricing_effective_date)
      AND nvl(TRUNC(qpl.end_date_active),qpq.pricing_effective_date)
and   qpl.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_HDR_QUAL_IND
and   qpl.list_line_type_code <>'PLL'
and   qpl.pricing_phase_id       = p_pricing_phase_id
--and   qpq.pricing_status_code = G_STATUS_UNCHANGED
--and   qpq.search_ind = 1
-- price book
and   (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
       qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
                                       G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
       or
       nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
order by 4,2;
Line: 22277

INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6

INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICING_ATTRIBUTES_N5,PRICING_PHASE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICING_ATTRIBUTES_N5,QUALIFICATION_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE_CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTR_VALUE,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICING_ATTRIBUTES_N5,EXCLUDER_FLAG,6

INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_LIST_HEADERS_B_PK,LIST_HEADER_ID,1

INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_lines_tmp_N1,LINE_INDEX,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,qp_npreq_lines_tmp_N1,LINE_TYPE_CODE,2

INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICE_REQ_SOURCES_PK,REQUEST_TYPE_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_cur,QP_PRICE_REQ_SOURCES_PK,SOURCE_SYSTEM_CODE,2
*/
CURSOR l_PROD_CUR (p_pricing_phase_id NUMBER) IS
-- Only Product attributes
select /*+ NO_EXPAND ORDERED USE_NL(QPLATPR QPPROD QPH QPL QPRS) INDEX(QPLINES)  INDEX(QPLATPR) index(QPPROD QP_PRICING_ATTRIBUTES_N5 ) index(qph QP_LIST_HEADERS_B_N7)  */  --5658579
/* ORDERED USE_NL(QPLATPR QPPROD QPH QPL QPRS) index(qplatpr QP_PREQ_LINE_ATTRS_TMP_N1) index(QPPROD QP_PRICING_ATTRIBUTES_N5)  index(qph qp_list_headers_b_n7) l_prod_cur_mod */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.validated_flag,
       qplatpr.applied_flag,
--for product
       qplatpr.attribute_level PRODUCT_ATTRIBUTE_LEVEL,
       qplatpr.attribute_type  PRODUCT_ATTRIBUTE_TYPE,
       qplatpr.context         PRODUCT_ATTRIBUTE_CONTEXT,
       qplatpr.attribute       PRODUCT_ATTRIBUTE,
       qplatpr.value_from      PRODUCT_ATTR_VALUE,
       qpprod.product_attr_value PRODUCT_SETUP_VALUE,
       qplatpr.pricing_attr_flag PRODUCT_PRICING_ATTR_FLAG,
       qpprod.product_uom_code  PRODUCT_UOM_CODE,
       qpprod.excluder_flag,
       NULL              QUALIFIER_GROUPING_NO,
       NULL              QUALIFIER_PRECEDENCE,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator OPERAND_CALCULATION_CODE,
       qpl.operand             OPERAND_VALUE,
       qpl.net_amount_flag,  --IT net_amount 2720717
       qpl.pricing_group_sequence,
       qph.ask_for_flag,
       qph.list_type_code CREATED_FROM_LIST_TYPE,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.override_flag,
       qpl.benefit_qty,
       qpl.benefit_uom_code,
       qpl.list_line_no,
       qpl.accrual_flag,
       qpl.accrual_conversion_rate,
       qpl.estim_accrual_rate,
       qph.limit_exists_flag header_limit_exists,
       qpl.limit_exists_flag line_limit_exists,
       'NQ' QUALIFIER_TYPE,  --NQ IS NO QUALIFIER
       qpl.charge_type_code,
       qpl.charge_subtype_code,
       qpl.accum_context,           -- accum range break
       qpl.accum_attribute,         -- accum range break
       qpl.accum_attr_run_src_flag  -- accum range break
FROM
	qp_npreq_lines_tmp QPLINES,
	qp_npreq_line_attrs_tmp qplatpr,
	QP_PRICING_ATTRIBUTES QPPROD ,
	QP_LIST_HEADERS_B  QPH ,
	QP_LIST_LINES QPL ,
	--QP_PRICE_REQ_SOURCES QPRS
	QP_PRICE_REQ_SOURCES_V QPRS /* yangli */
WHERE
   (qplines.price_flag = G_YES
       OR
       (qplines.price_flag = G_PHASE
        AND
        p_freeze_override_flag = G_YES))
AND 	QPH.LIST_HEADER_ID = QPPROD.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and   ((qph.currency_code is not null and qph.currency_code = qplines.currency_code)
       or
       qph.currency_code is null) -- optional currency
--AND   qph.currency_code IN (qplines.currency_code , G_ANY_CURRENCY_CODE) --shu, allow currency_code being ANY for modifiers
and   (qplines.unit_price is not null
        or
       qplines.usage_pricing_type = G_AUTHORING_TYPE
	or
       qplines.line_type_code = G_ORDER_LEVEL)
and   (qpl.modifier_level_code = qplines.line_type_code
       OR
       (qpl.modifier_level_code = G_LINE_GROUP and
        nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and   qph.active_flag = G_YES
AND   ((qph.ASK_FOR_FLAG = G_YES and exists (SELECT /*+ index(la QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/pricebook]
                                             FROM qp_npreq_line_attrs_tmp la
                                             WHERE attribute_type = 'QUALIFIER'
                                             AND pricing_status_code = G_STATUS_UNCHANGED
                                             AND validated_flag = G_NO
                                             AND list_header_id = qph.list_header_id
                                             AND line_index = qplines.line_index))
        OR qph.ask_for_flag = G_NO)
AND 	QPL.LIST_LINE_ID = QPPROD.LIST_LINE_ID
and  nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) BETWEEN
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) AND
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
and   nvl(qplines.start_date_active_first,TRUNC(SYSDATE)) BETWEEN
       nvl(qph.start_date_active_first,nvl(qplines.start_date_active_first,TRUNC(SYSDATE)))
      AND
       nvl(qph.end_date_active_first,nvl(qplines.start_date_active_first,TRUNC(SYSDATE)))
and   nvl(qplines.start_date_active_second,TRUNC(SYSDATE)) BETWEEN
       nvl(qph.start_date_active_second, nvl(qplines.start_date_active_second,TRUNC(SYSDATE)))
      AND
       nvl(qph.end_date_active_second, nvl(qplines.start_date_active_second,TRUNC(SYSDATE)))
and   nvl(qplines.active_date_first_type,'X') =
                nvl(qph.active_date_first_type,nvl(qplines.active_date_first_type,'X'))
and   nvl(qplines.active_date_second_type,'X') =
                nvl(qph.active_date_second_type,nvl(qplines.active_date_second_type,'X'))
and  nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) BETWEEN                           --bug7307625
       nvl(qpl.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) AND
       nvl(qpl.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
/*and   qplines.pricing_effective_date BETWEEN
         nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
      AND nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)*/
and  qplines.priced_uom_code = nvl(qpprod.product_uom_code,qplines.priced_uom_code)
and  qpprod.pricing_phase_id = p_pricing_phase_id
and  qpprod.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_IND
and 	qpprod.product_attribute_context = qplatpr.context
and 	qpprod.product_attribute = qplatpr.attribute
and   qpprod.product_attr_value = qplatpr.value_from
and 	qpprod.excluder_flag = G_NO
and   qph.source_system_code = qprs.source_system_code
and   qplines.request_type_code   = qprs.request_type_code
AND   QPLATPR.LINE_INDEX = QPLINES.LINE_INDEX
and   qplatpr.attribute_type='PRODUCT'
and   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
-- price book
and   (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
       qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
                                       G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
       or
       nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
order by 4,2;
Line: 22435

INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6

INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICING_ATTRIBUTES_N5,PRICING_PHASE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICING_ATTRIBUTES_N5,QUALIFICATION_IND,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE_CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICING_ATTRIBUTES_N5,PRODUCT_ATTR_VALUE,5
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICING_ATTRIBUTES_N5,EXCLUDER_FLAG,6

INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5

INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_LIST_HEADERS_B_PK,LIST_HEADER_ID,1

INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_lines_tmp_N1,LINE_INDEX,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,qp_npreq_lines_tmp_N1,LINE_TYPE_CODE,2

INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICE_REQ_SOURCES_PK,REQUEST_TYPE_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_prod_pric_cur,QP_PRICE_REQ_SOURCES_PK,SOURCE_SYSTEM_CODE,2
*/

CURSOR l_PROD_PRIC_CUR (p_pricing_phase_id NUMBER) IS
--PRODUCT and PRICING attributes
SELECT /*+ ORDERED USE_NL(QPLATPR QPPROD QPLATPC QPH QPL QPRS) index(qplatpr QP_PREQ_LINE_ATTRS_TMP_N1) index(QPPROD QP_PRICING_ATTRIBUTES_N5) index(qplatpc qp_preq_line_attrs_tmp_N2) index(qph qp_list_headers_b_n7) l_prod_pric_cur_mod */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.validated_flag,
       qplatpr.applied_flag,
--FOR PRODUCT
       qplatpr.attribute_level               PRODUCT_ATTRIBUTE_LEVEL,
       qplatpr.attribute_type                PRODUCT_ATTRIBUTE_TYPE,
       qplatpr.context                       PRODUCT_ATTRIBUTE_CONTEXT,
       qplatpr.attribute                     PRODUCT_ATTRIBUTE,
       qplatpr.value_from                    PRODUCT_ATTR_VALUE,
       qpprod.product_attr_value             PRODUCT_SETUP_VALUE,
       qplatpr.pricing_attr_flag             PRODUCT_PRICING_ATTR_FLAG,
       qpprod.product_uom_code               PRODUCT_UOM_CODE,
       qpprod.excluder_flag,
--FOR PRICING
       qplatpc.attribute_level               PRICING_ATTRIBUTE_LEVEL,
       qplatpc.attribute_type                PRICING_ATTRIBUTE_TYPE,
       qplatpc.context                       PRICING_ATTRIBUTE_CONTEXT,
       qplatpc.attribute                     PRICING_ATTRIBUTE,
       qplatpc.value_from                    PRICING_ATTR_VALUE,
       qpprod.pricing_attr_value_from        PRICING_SETUP_VALUE_FROM,
       qpprod.pricing_attr_value_to          PRICING_SETUP_VALUE_TO,
       qpprod.comparison_operator_code       PRICING_COMPARISON_OPERATOR,
       qpprod.pricing_attribute_datatype     PRICING_DATATYPE,
       NULL              qualifier_grouping_no,
       NULL              qualifier_precedence,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator OPERAND_CALCULATION_CODE,
       qpl.operand             OPERAND_VALUE,
       qpl.net_amount_flag,  --IT net_amount 2720717
       qpl.pricing_group_sequence,
       qph.ask_for_flag,
       qph.list_type_code      CREATED_FROM_LIST_TYPE,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.override_flag,
       qpl.benefit_qty,
       qpl.benefit_uom_code,
       qpl.list_line_no,
       qpl.accrual_flag,
       qpl.accrual_conversion_rate,
       qpl.estim_accrual_rate,
       qph.limit_exists_flag header_limit_exists,
       qpl.limit_exists_flag line_limit_exists,
       'NQ'                     QUALIFIER_TYPE,
       qpl.charge_type_code,
       qpl.charge_subtype_code,
       qpl.accum_context,           -- accum range break
       qpl.accum_attribute,         -- accum range break
       qpl.accum_attr_run_src_flag  -- accum range break
FROM
       qp_npreq_lines_tmp QPLINES,
       qp_npreq_line_attrs_tmp qplatpr,
       QP_PRICING_ATTRIBUTES QPPROD ,
       qp_npreq_line_attrs_tmp qplatpc,
       QP_LIST_HEADERS_B  QPH  ,
       QP_LIST_LINES QPL ,
       --QP_PRICE_REQ_SOURCES qprs
       QP_PRICE_REQ_SOURCES_V qprs /* yangli */
WHERE
   (qplines.price_flag = G_YES
       OR
      (qplines.price_flag = G_PHASE
       AND
        p_freeze_override_flag = G_YES))
and   ((qph.currency_code is not null and qph.currency_code = qplines.currency_code)
       OR
       qph.currency_code is null) -- optional currency
--AND   qph.currency_code IN (qplines.currency_code , G_ANY_CURRENCY_CODE) --shu, allow currency_code being ANY for modifiers
and   (qplines.unit_price is not null
        or
       qplines.usage_pricing_type = G_AUTHORING_TYPE
	or
       qplines.line_type_code = G_ORDER_LEVEL)
and   (qpl.modifier_level_code = qplines.line_type_code
       OR
       (qpl.modifier_level_code = G_LINE_GROUP and
        nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and  qph.active_flag = G_YES
AND   ((qph.ASK_FOR_FLAG = G_YES and exists (SELECT /*+ index(la QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/pricebook]
                                             FROM qp_npreq_line_attrs_tmp la
                                             WHERE attribute_type = 'QUALIFIER'
                                             AND pricing_status_code = G_STATUS_UNCHANGED
                                             AND validated_flag = G_NO
                                             AND list_header_id = qph.list_header_id
                                             AND line_index = qplines.line_index))
        OR qph.ask_for_flag = G_NO)
AND 	QPH.LIST_HEADER_ID = QPPROD.LIST_HEADER_ID
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND 	QPL.LIST_LINE_ID = QPPROD.LIST_LINE_ID
AND  QPPROD.PRICING_PHASE_ID = P_PRICING_PHASE_ID
and  nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) BETWEEN
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) AND
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
and   nvl(qplines.start_date_active_first,TRUNC(SYSDATE)) BETWEEN
       nvl(qph.start_date_active_first,nvl(qplines.start_date_active_first,TRUNC(SYSDATE)))
      AND
       nvl(qph.end_date_active_first,nvl(qplines.start_date_active_first,TRUNC(SYSDATE)))
and   nvl(qplines.start_date_active_second,TRUNC(SYSDATE)) BETWEEN
       nvl(qph.start_date_active_second, nvl(qplines.start_date_active_second,TRUNC(SYSDATE)))
      AND
       nvl(qph.end_date_active_second, nvl(qplines.start_date_active_second,TRUNC(SYSDATE)))
and   nvl(qplines.active_date_first_type,'X') =
                nvl(qph.active_date_first_type,nvl(qplines.active_date_first_type,'X'))
and   nvl(qplines.active_date_second_type,'X') =
                nvl(qph.active_date_second_type,nvl(qplines.active_date_second_type,'X'))
and   qplines.pricing_effective_date BETWEEN
         nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
      AND nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
and  qplines.priced_uom_code = nvl(qpprod.product_uom_code,qplines.priced_uom_code)
and  qpprod.pricing_phase_id = p_pricing_phase_id
and  qpprod.QUALIFICATION_IND = QP_PREQ_GRP.G_YES_PROD_PRIC_IND
and 	qpprod.product_attribute_context = qplatpr.context
and 	qpprod.product_attribute = qplatpr.attribute
and 	qpprod.product_attr_value = qplatpr.value_from
and 	qpprod.pricing_attribute_context = qplatpc.context
and 	qpprod.pricing_attribute = qplatpc.attribute
and 	(qpprod.pricing_attr_value_from = qplatpc.value_from
         or qpprod.comparison_operator_code IN ('NOT =',G_OPERATOR_BETWEEN))
         --or qpl.price_break_type_code = G_RECURRING_BREAK)
and  qpprod.excluder_flag = G_NO
and  qplatpc.line_index = qplatpr.line_index
and  qplatpr.line_index = qplines.line_index
and  qph.source_system_code = qprs.source_system_code
and  qplines.request_type_code   = qprs.request_type_code
and 	qplatpc.pricing_attr_flag = G_YES
and  qplatpr.attribute_type='PRODUCT'
and  qplatpr.pricing_status_code=G_STATUS_UNCHANGED
and  qplatpc.attribute_type = 'PRICING'
and  qplatpc.pricing_status_code = G_STATUS_UNCHANGED
-- price book
and   (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
       qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
                                       G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
       or
       nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
order by 4,2;
Line: 22615

INDX,QP_PREQ_GRP.select_modifiers.l_cur,QP_LIST_LINES_N5,PRICING_PHASE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_cur,QP_LIST_LINES_N5,QUALIFICATION_IND,2

INDX,QP_PREQ_GRP.select_modifiers.l_cur,QP_LIST_HEADERS_B_N2,LIST_HEADER_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_cur,QP_LIST_HEADERS_B_N2,ACTIVE_FLAG,2
INDX,QP_PREQ_GRP.select_modifiers.l_cur,QP_LIST_HEADERS_B_N2,CURRENCY_CODE,3

INDX,QP_PREQ_GRP.select_modifiers.l_cur,QP_PRICE_REQ_SOURCES_PK,REQUEST_TYPE_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_cur,QP_PRICE_REQ_SOURCES_PK,SOURCE_SYSTEM_CODE,2
*/
cursor l_CUR (p_pricing_phase_id NUMBER) IS
-- NO PRODUCTS AND NO QUALIFIERS
SELECT /*+ NO_EXPAND ORDERED USE_NL(QPL QPH QPRS) index(QPL QP_LIST_LINES_N5) index(qph qp_list_headers_b_n7) l_cur_mod */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplines.line_index,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator operand_calculation_code,
       qpl.operand             operand_value,
       qpl.net_amount_flag,  --IT net_amount 2720717
       qpl.pricing_group_sequence,
       qph.ask_for_flag,
       qph.list_type_code created_from_list_type,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.override_flag,
       qpl.benefit_qty,
       qpl.benefit_uom_code,
       qpl.list_line_no,
       qpl.accrual_flag,
       qpl.accrual_conversion_rate,
       qpl.estim_accrual_rate,
       qph.limit_exists_flag header_limit_exists,
       qpl.limit_exists_flag line_limit_exists,
       qpl.charge_type_code,
       qpl.charge_subtype_code,
       qpl.accum_context,           -- accum range break
       qpl.accum_attribute,         -- accum range break
       qpl.accum_attr_run_src_flag  -- accum range break
from
       qp_npreq_lines_tmp qplines,
       qp_list_lines qpl,
       qp_list_headers_b qph,
       --qp_price_req_sources qprs
       qp_price_req_sources_v qprs /* yangli */
where qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
and   qph.active_flag=G_YES
AND   ((qph.ASK_FOR_FLAG = G_YES and exists (SELECT /*+ index(la QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x' --[julin/pricebook]
                                             FROM qp_npreq_line_attrs_tmp la
                                             WHERE attribute_type = 'QUALIFIER'
                                             AND pricing_status_code = G_STATUS_UNCHANGED
                                             AND validated_flag = G_NO
                                             AND list_header_id = qph.list_header_id
                                             AND line_index = qplines.line_index))
        OR qph.ask_for_flag = G_NO)
and   qpl.pricing_phase_id=p_pricing_phase_id
and   qpl.QUALIFICATION_IND = QP_PREQ_GRP.G_BLIND_DISCOUNT_IND
and   (qplines.price_flag = G_YES
       OR
       (qplines.price_flag = G_PHASE
        AND
        p_freeze_override_flag = G_YES))
and   ((qph.currency_code is not null and qph.currency_code = qplines.currency_code)
       OR
       qph.currency_code is null) -- optional currency
--  AND   qph.currency_code IN (qplines.currency_code , G_ANY_CURRENCY_CODE) --shu, allow currency_code being ANY for modifiers
and   (qplines.unit_price is not null
        or
       qplines.usage_pricing_type = G_AUTHORING_TYPE
	or
       qplines.line_type_code = G_ORDER_LEVEL)
and   (qpl.modifier_level_code = qplines.line_type_code
       OR
       (qpl.modifier_level_code = G_LINE_GROUP and
        nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)) -- price book
and  nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) BETWEEN
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) AND
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
and   nvl(qplines.start_date_active_first,TRUNC(SYSDATE)) BETWEEN
       nvl(qph.start_date_active_first,nvl(qplines.start_date_active_first,TRUNC(SYSDATE)))
      AND
       nvl(qph.end_date_active_first,nvl(qplines.start_date_active_first,TRUNC(SYSDATE)))
and   nvl(qplines.start_date_active_second,TRUNC(SYSDATE)) BETWEEN
       nvl(qph.start_date_active_second, nvl(qplines.start_date_active_second,TRUNC(SYSDATE)))
      AND
       nvl(qph.end_date_active_second, nvl(qplines.start_date_active_second,TRUNC(SYSDATE)))
and   nvl(qplines.active_date_first_type,'X') =
                nvl(qph.active_date_first_type,nvl(qplines.active_date_first_type,'X'))
and   nvl(qplines.active_date_second_type,'X') =
                nvl(qph.active_date_second_type,nvl(qplines.active_date_second_type,'X'))
and   qplines.pricing_effective_date BETWEEN
         nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
      AND nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
and   qph.source_system_code = qprs.source_system_code
and   qplines.request_type_code   = qprs.request_type_code
-- price book
and   (nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES and
       qpl.list_line_type_code not in (G_PROMO_GOODS_DISCOUNT,G_OTHER_ITEM_DISCOUNT,
                                       G_COUPON_ISSUE,G_TERMS_SUBSTITUTION,G_ITEM_UPGRADE)
       or
       nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) <> G_YES)
order by 4,2;
Line: 22730

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: 22789

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: 22809

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: 22915

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: 23098

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: 23170

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: 23190

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

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

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

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

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

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: 23339

	-- 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: 23352

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

	-- 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: 23371

  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: 23395

   G_LIST_HEADER_ID_TBL_Q.delete;
Line: 23396

   G_LIST_LINE_ID_TBL_Q.delete;
Line: 23397

   G_CONTEXT_TBL_Q.delete;
Line: 23398

   G_ATTRIBUTE_TBL_Q.delete;
Line: 23399

   G_VALUE_FROM_TBL_Q.delete;
Line: 23400

   G_LIST_TYPE_CODE_TBL_Q.delete;
Line: 23401

   G_ASK_FOR_FLAG_TBL_Q.delete;
Line: 23402

   G_GROUPING_NO_TBL_Q.delete;
Line: 23403

   G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
Line: 23404

   G_OTHERS_GROUP_CNT_TBL_Q.delete;
Line: 23405

   G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
Line: 23406

   G_SEARCH_IND_TBL_Q.delete;
Line: 23407

   G_VALIDATED_FLAG_TBL_Q.delete;
Line: 23408

   G_APPLIED_FLAG_TBL_Q.delete;
Line: 23409

   G_ATTRIBUTE_LEVEL_TBL_Q.delete;
Line: 23410

   G_ATTRIBUTE_TYPE_TBL_Q.delete;
Line: 23411

   G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
Line: 23412

   G_DATATYPE_TBL_Q.delete;
Line: 23413

   G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 23414

   G_SETUP_VALUE_FROM_TBL_Q.delete;
Line: 23415

   G_SETUP_VALUE_TO_TBL_Q.delete;
Line: 23416

   G_PRICING_ATTR_FLAG_TBL_Q.delete;
Line: 23417

   G_OPERATOR_TYPE_TBL_Q.delete;
Line: 23418

   G_LINE_INDEX_TBL_Q.delete;
Line: 23419

   G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
Line: 23420

   G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 23421

   G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 23422

   G_LINE_TYPE_CODE_TBL_Q.delete;
Line: 23423

   G_PRICING_STATUS_CODE_TBL_Q.delete;
Line: 23424

   G_PRICING_PHASE_ID_TBL_Q.delete;
Line: 23425

   G_UNIQUE_KEY_TBL_Q.delete;
Line: 23426

   G_START_DATE_ACTIVE_TBL_H_Q.delete;
Line: 23427

   G_END_DATE_ACTIVE_TBL_H_Q.delete;
Line: 23428

   G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 23429

   G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 23430

   G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
Line: 23431

   G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
Line: 23432

   G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
Line: 23479

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

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

      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: 23546

   G_LIST_HEADER_ID_TBL_Q.delete;
Line: 23547

   G_LIST_LINE_ID_TBL_Q.delete;
Line: 23548

   G_CONTEXT_TBL_Q.delete;
Line: 23549

   G_ATTRIBUTE_TBL_Q.delete;
Line: 23550

   G_VALUE_FROM_TBL_Q.delete;
Line: 23551

   G_LIST_TYPE_CODE_TBL_Q.delete;
Line: 23552

   G_ASK_FOR_FLAG_TBL_Q.delete;
Line: 23553

   G_GROUPING_NO_TBL_Q.delete;
Line: 23554

   G_QUALIFIER_GROUP_CNT_TBL_Q.delete;
Line: 23555

   G_OTHERS_GROUP_CNT_TBL_Q.delete;
Line: 23556

   G_HEADER_QUALS_EXIST_FLG_TBL_Q.delete;
Line: 23557

   G_SEARCH_IND_TBL_Q.delete;
Line: 23558

   G_VALIDATED_FLAG_TBL_Q.delete;
Line: 23559

   G_APPLIED_FLAG_TBL_Q.delete;
Line: 23560

   G_ATTRIBUTE_LEVEL_TBL_Q.delete;
Line: 23561

   G_ATTRIBUTE_TYPE_TBL_Q.delete;
Line: 23562

   G_QUALIFIER_PRECEDENCE_TBL_Q.delete;
Line: 23563

   G_DATATYPE_TBL_Q.delete;
Line: 23564

   G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 23565

   G_SETUP_VALUE_FROM_TBL_Q.delete;
Line: 23566

   G_SETUP_VALUE_TO_TBL_Q.delete;
Line: 23567

   G_PRICING_ATTR_FLAG_TBL_Q.delete;
Line: 23568

   G_OPERATOR_TYPE_TBL_Q.delete;
Line: 23569

   G_LINE_INDEX_TBL_Q.delete;
Line: 23570

   G_PRICING_EFFECTIVE_DATE_TBL_Q.delete;
Line: 23571

   G_START_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 23572

   G_END_DATE_ACTIVE_FIR_TBL_Q.delete;
Line: 23573

   G_LINE_TYPE_CODE_TBL_Q.delete;
Line: 23574

   G_PRICING_STATUS_CODE_TBL_Q.delete;
Line: 23575

   G_PRICING_PHASE_ID_TBL_Q.delete;
Line: 23576

   G_UNIQUE_KEY_TBL_Q.delete;
Line: 23577

   G_START_DATE_ACTIVE_TBL_H_Q.delete;
Line: 23578

   G_END_DATE_ACTIVE_TBL_H_Q.delete;
Line: 23579

   G_START_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 23580

   G_END_DATE_ACTIVE_SEC_TBL_Q.delete;
Line: 23581

   G_ACTIVE_DATE_FIR_TYPE_TBL_Q.delete;
Line: 23582

   G_ACTIVE_DATE_SEC_TYPE_TBL_Q.delete;
Line: 23583

   G_HEADER_LIMIT_EXISTS_TBL_Q.delete;
Line: 23584

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

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

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

      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: 23706

 G_LIST_HEADER_ID_TBL_P.delete;
Line: 23707

 G_LIST_LINE_ID_TBL_P.delete;
Line: 23708

 G_LIST_LINE_TYPE_TBL_P.delete;
Line: 23709

 G_LINE_INDEX_TBL_P.delete;
Line: 23710

 G_VALIDATED_FLAG_TBL_P.delete;
Line: 23711

 G_APPLIED_FLAG_TBL_P.delete;
Line: 23712

 G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 23713

 G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 23714

 G_CONTEXT_TBL_P.delete;
Line: 23715

 G_ATTRIBUTE_TBL_P.delete;
Line: 23716

 G_VALUE_FROM_TBL_P.delete;
Line: 23717

 G_SETUP_VALUE_FROM_TBL_P.delete;
Line: 23718

 G_PRICING_ATTR_FLAG_TBL_P.delete;
Line: 23719

 G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 23720

 G_EXCLUDER_FLAG_TBL_P.delete;
Line: 23721

 G_AUTOMATIC_FLAG_TBL_P.delete;
Line: 23722

 G_MODIFIER_LEVEL_CODE_TBL_P.delete;
Line: 23723

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

 G_PRIMARY_UOM_FLAG_TBL_P.delete;
Line: 23725

 G_OPER_CALCULATION_CODE_TBL_P.delete;
Line: 23726

 G_OPERAND_VALUE_TBL_P.delete;
Line: 23727

 G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
Line: 23728

 G_PRICING_PHASE_ID_TBL_P.delete;
Line: 23729

 G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
Line: 23730

 G_INCOMP_GRP_CODE_TBL_P.delete;
Line: 23731

 G_PRICE_FORMULA_ID_TBL_P.delete;
Line: 23732

 G_PRODUCT_PRECEDENCE_TBL_P.delete;
Line: 23733

 G_OVERRIDE_FLAG_TBL_P.delete;
Line: 23734

 G_BENEFIT_QTY_TBL_P.delete;
Line: 23735

 G_BENEFIT_UOM_CODE_TBL_P.delete;
Line: 23736

 G_LIST_LINE_NO_TBL_P.delete;
Line: 23737

 G_ACCRUAL_FLAG_TBL_P.delete;
Line: 23738

 G_ACCR_CONVERSION_RATE_TBL_P.delete;
Line: 23739

 G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
Line: 23740

 G_ASK_FOR_FLAG_TBL_P.delete;
Line: 23741

 G_LIST_TYPE_CODE_TBL_P.delete;
Line: 23742

 G_HEADER_LIMIT_EXISTS_TBL_P.delete;
Line: 23743

 G_LINE_LIMIT_EXISTS_TBL_P.delete;
Line: 23744

 G_QUALIFIER_TYPE_TBL_P.delete;
Line: 23745

 G_CHARGE_TYPE_CODE_TBL_P.delete;
Line: 23746

 G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
Line: 23747

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

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

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

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

  G_LIST_HEADER_ID_TBL_P.delete;
Line: 23998

  G_LIST_LINE_ID_TBL_P.delete;
Line: 23999

  G_LIST_LINE_TYPE_TBL_P.delete;
Line: 24000

  G_LINE_INDEX_TBL_P.delete;
Line: 24001

  G_VALIDATED_FLAG_TBL_P.delete;
Line: 24002

  G_APPLIED_FLAG_TBL_P.delete;
Line: 24003

  G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 24004

  G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 24005

  G_CONTEXT_TBL_P.delete;
Line: 24006

  G_ATTRIBUTE_TBL_P.delete;
Line: 24007

  G_VALUE_FROM_TBL_P.delete;
Line: 24008

  G_SETUP_VALUE_FROM_TBL_P.delete;
Line: 24009

  G_PRICING_ATTR_FLAG_TBL_P.delete;
Line: 24010

  G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 24011

  G_EXCLUDER_FLAG_TBL_P.delete;
Line: 24012

  G_ATTRIBUTE_LEVEL_TBL_PR.delete;
Line: 24013

  G_ATTRIBUTE_TYPE_TBL_PR.delete;
Line: 24014

  G_CONTEXT_TBL_PR.delete;
Line: 24015

  G_ATTRIBUTE_TBL_PR.delete;
Line: 24016

  G_VALUE_FROM_TBL_PR.delete;
Line: 24017

  G_OPERATOR_TYPE_TBL_PR.delete;
Line: 24018

  G_SETUP_VALUE_FROM_TBL_PR.delete;
Line: 24019

  G_SETUP_VALUE_TO_TBL_PR.delete;
Line: 24020

  G_DATATYPE_TBL_PR.delete;
Line: 24021

  G_AUTOMATIC_FLAG_TBL_P.delete;
Line: 24022

  G_MODIFIER_LEVEL_CODE_TBL_P.delete;
Line: 24023

  G_PRIMARY_UOM_FLAG_TBL_P.delete;
Line: 24024

  G_OPER_CALCULATION_CODE_TBL_P.delete;
Line: 24025

  G_OPERAND_VALUE_TBL_P.delete;
Line: 24026

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

  G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
Line: 24028

  G_PRICING_PHASE_ID_TBL_P.delete;
Line: 24029

  G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
Line: 24030

  G_INCOMP_GRP_CODE_TBL_P.delete;
Line: 24031

  G_PRICE_FORMULA_ID_TBL_P.delete;
Line: 24032

  G_PRODUCT_PRECEDENCE_TBL_P.delete;
Line: 24033

  G_OVERRIDE_FLAG_TBL_P.delete;
Line: 24034

  G_BENEFIT_QTY_TBL_P.delete;
Line: 24035

  G_BENEFIT_UOM_CODE_TBL_P.delete;
Line: 24036

  G_LIST_LINE_NO_TBL_P.delete;
Line: 24037

  G_ACCRUAL_FLAG_TBL_P.delete;
Line: 24038

  G_ACCR_CONVERSION_RATE_TBL_P.delete;
Line: 24039

  G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
Line: 24040

  G_ASK_FOR_FLAG_TBL_P.delete;
Line: 24041

  G_LIST_TYPE_CODE_TBL_P.delete;
Line: 24042

  G_HEADER_LIMIT_EXISTS_TBL_P.delete;
Line: 24043

  G_LINE_LIMIT_EXISTS_TBL_P.delete;
Line: 24044

  G_QUALIFIER_TYPE_TBL_P.delete;
Line: 24045

  G_CHARGE_TYPE_CODE_TBL_P.delete;
Line: 24046

  G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
Line: 24047

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

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

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

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

 G_LIST_HEADER_ID_TBL_Q.delete;
Line: 24344

 G_LIST_LINE_ID_TBL_Q.delete;
Line: 24345

 G_LIST_LINE_TYPE_TBL_Q.delete;
Line: 24346

 G_LINE_INDEX_TBL_Q.delete;
Line: 24347

 G_AUTOMATIC_FLAG_TBL_Q.delete;
Line: 24348

 G_MODIFIER_LEVEL_CODE_TBL_Q.delete;
Line: 24349

 G_PRIMARY_UOM_FLAG_TBL_Q.delete;
Line: 24350

 G_OPER_CALCULATION_CODE_TBL_Q.delete;
Line: 24351

 G_OPERAND_TBL_Q.delete;
Line: 24352

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

 G_PRICING_GROUP_SEQUENCE_TBL_Q.delete;
Line: 24354

 G_PRICING_PHASE_ID_TBL_Q.delete;
Line: 24355

 G_PRICE_BREAK_TYPE_CODE_TBL_Q.delete;
Line: 24356

 G_INCOMP_GRP_CODE_TBL_Q.delete;
Line: 24357

 G_PRICE_FORMULA_ID_TBL_Q.delete;
Line: 24358

 G_PRODUCT_PRECEDENCE_TBL_Q.delete;
Line: 24359

 G_OVERRIDE_FLAG_TBL_P.delete;
Line: 24360

 G_BENEFIT_QTY_TBL_P.delete;
Line: 24361

 G_BENEFIT_UOM_CODE_TBL_P.delete;
Line: 24362

 G_LIST_LINE_NO_TBL_Q.delete;
Line: 24363

 G_ACCRUAL_FLAG_TBL_Q.delete;
Line: 24364

 G_ACCR_CONVERSION_RATE_TBL_Q.delete;
Line: 24365

 G_ESTIM_ACCRUAL_RATE_TBL_Q.delete;
Line: 24366

 G_ASK_FOR_FLAG_TBL_Q.delete;
Line: 24367

 G_LIST_TYPE_CODE_TBL_Q.delete;
Line: 24368

 G_QUALIFIER_TYPE_TBL_Q.delete;
Line: 24369

 G_HEADER_LIMIT_EXISTS_TBL_P.delete;
Line: 24370

 G_LINE_LIMIT_EXISTS_TBL_P.delete;
Line: 24371

 G_CHARGE_TYPE_CODE_TBL_P.delete;
Line: 24372

 G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
Line: 24373

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

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

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

  G_LIST_HEADER_ID_TBL_P.delete;
Line: 24566

  G_LIST_LINE_ID_TBL_P.delete;
Line: 24567

  G_LIST_LINE_TYPE_TBL_P.delete;
Line: 24568

  G_LINE_INDEX_TBL_P.delete;
Line: 24569

  G_VALIDATED_FLAG_TBL_P.delete;
Line: 24570

  G_APPLIED_FLAG_TBL_P.delete;
Line: 24571

  G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 24572

  G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 24573

  G_CONTEXT_TBL_P.delete;
Line: 24574

  G_ATTRIBUTE_TBL_P.delete;
Line: 24575

  G_VALUE_FROM_TBL_P.delete;
Line: 24576

  G_SETUP_VALUE_FROM_TBL_P.delete;
Line: 24577

  G_PRICING_ATTR_FLAG_TBL_P.delete;
Line: 24578

  G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 24579

  G_EXCLUDER_FLAG_TBL_P.delete;
Line: 24580

  G_GROUPING_NUMBER_TBL_P.delete;
Line: 24581

  G_QUALIFIER_PRECEDENCE_TBL_P.delete;
Line: 24582

  G_AUTOMATIC_FLAG_TBL_P.delete;
Line: 24583

  G_MODIFIER_LEVEL_CODE_TBL_P.delete;
Line: 24584

  G_PRIMARY_UOM_FLAG_TBL_P.delete;
Line: 24585

  G_OPER_CALCULATION_CODE_TBL_P.delete;
Line: 24586

  G_OPERAND_VALUE_TBL_P.delete;
Line: 24587

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

  G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
Line: 24589

  G_ASK_FOR_FLAG_TBL_P.delete;
Line: 24590

  G_LIST_TYPE_CODE_TBL_P.delete;
Line: 24591

  G_PRICING_PHASE_ID_TBL_P.delete;
Line: 24592

  G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
Line: 24593

  G_INCOMP_GRP_CODE_TBL_P.delete;
Line: 24594

  G_PRICE_FORMULA_ID_TBL_P.delete;
Line: 24595

  G_PRODUCT_PRECEDENCE_TBL_P.delete;
Line: 24596

  G_OVERRIDE_FLAG_TBL_P.delete;
Line: 24597

  G_BENEFIT_QTY_TBL_P.delete;
Line: 24598

  G_BENEFIT_UOM_CODE_TBL_P.delete;
Line: 24599

  G_LIST_LINE_NO_TBL_P.delete;
Line: 24600

  G_ACCRUAL_FLAG_TBL_P.delete;
Line: 24601

  G_ACCR_CONVERSION_RATE_TBL_P.delete;
Line: 24602

  G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
Line: 24603

  G_HEADER_LIMIT_EXISTS_TBL_P.delete;
Line: 24604

  G_LINE_LIMIT_EXISTS_TBL_P.delete;
Line: 24605

  G_QUALIFIER_TYPE_TBL_P.delete;
Line: 24606

  G_CHARGE_TYPE_CODE_TBL_P.delete;
Line: 24607

  G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
Line: 24608

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

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

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

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

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

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

  G_LIST_HEADER_ID_TBL_P.delete;
Line: 24790

  G_LIST_LINE_ID_TBL_P.delete;
Line: 24791

  G_LIST_LINE_TYPE_TBL_P.delete;
Line: 24792

  G_LINE_INDEX_TBL_P.delete;
Line: 24793

  G_VALIDATED_FLAG_TBL_P.delete;
Line: 24794

  G_APPLIED_FLAG_TBL_P.delete;
Line: 24795

  G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 24796

  G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 24797

  G_CONTEXT_TBL_P.delete;
Line: 24798

  G_ATTRIBUTE_TBL_P.delete;
Line: 24799

  G_VALUE_FROM_TBL_P.delete;
Line: 24800

  G_SETUP_VALUE_FROM_TBL_P.delete;
Line: 24801

  G_PRICING_ATTR_FLAG_TBL_P.delete;
Line: 24802

  G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 24803

  G_EXCLUDER_FLAG_TBL_P.delete;
Line: 24804

  G_GROUPING_NUMBER_TBL_P.delete;
Line: 24805

  G_QUALIFIER_PRECEDENCE_TBL_P.delete;
Line: 24806

  G_AUTOMATIC_FLAG_TBL_P.delete;
Line: 24807

  G_MODIFIER_LEVEL_CODE_TBL_P.delete;
Line: 24808

  G_PRIMARY_UOM_FLAG_TBL_P.delete;
Line: 24809

  G_OPER_CALCULATION_CODE_TBL_P.delete;
Line: 24810

  G_OPERAND_VALUE_TBL_P.delete;
Line: 24811

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

  G_PRICING_GROUP_SEQUENCE_TBL_P.delete;
Line: 24813

  G_ASK_FOR_FLAG_TBL_P.delete;
Line: 24814

  G_LIST_TYPE_CODE_TBL_P.delete;
Line: 24815

  G_PRICING_PHASE_ID_TBL_P.delete;
Line: 24816

  G_PRICE_BREAK_TYPE_CODE_TBL_P.delete;
Line: 24817

  G_INCOMP_GRP_CODE_TBL_P.delete;
Line: 24818

  G_PRICE_FORMULA_ID_TBL_P.delete;
Line: 24819

  G_PRODUCT_PRECEDENCE_TBL_P.delete;
Line: 24820

  G_OVERRIDE_FLAG_TBL_P.delete;
Line: 24821

  G_PRINT_ON_INVOICE_FLAG_TBL_P.delete;
Line: 24822

  G_BENEFIT_QTY_TBL_P.delete;
Line: 24823

  G_BENEFIT_UOM_CODE_TBL_P.delete;
Line: 24824

  G_LIST_LINE_NO_TBL_P.delete;
Line: 24825

  G_ACCRUAL_FLAG_TBL_P.delete;
Line: 24826

  G_ACCR_CONVERSION_RATE_TBL_P.delete;
Line: 24827

  G_ESTIM_ACCRUAL_RATE_TBL_P.delete;
Line: 24828

  G_QUALIFIER_TYPE_TBL_P.delete;
Line: 24829

  G_ATTRIBUTE_LEVEL_TBL_PR.delete;
Line: 24830

  G_ATTRIBUTE_TYPE_TBL_PR.delete;
Line: 24831

  G_CONTEXT_TBL_PR.delete;
Line: 24832

  G_ATTRIBUTE_TBL_PR.delete;
Line: 24833

  G_VALUE_FROM_TBL_PR.delete;
Line: 24834

  G_OPERATOR_TYPE_TBL_PR.delete;
Line: 24835

  G_SETUP_VALUE_FROM_TBL_PR.delete;
Line: 24836

  G_SETUP_VALUE_TO_TBL_PR.delete;
Line: 24837

  G_DATATYPE_TBL_PR.delete;
Line: 24838

  G_HEADER_LIMIT_EXISTS_TBL_P.delete;
Line: 24839

  G_LINE_LIMIT_EXISTS_TBL_P.delete;
Line: 24840

  G_CHARGE_TYPE_CODE_TBL_P.delete;
Line: 24841

  G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
Line: 24842

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

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

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

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

   G_LINE_INDEX_TBL_B.delete;
Line: 25070

   G_LIST_HEADER_ID_TBL_B.delete;
Line: 25071

   G_LIST_LINE_ID_TBL_B.delete;
Line: 25072

   G_PRICE_BREAK_TYPE_CODE_TBL_B.delete ;
Line: 25073

   G_LIST_LINE_TYPE_TBL_B.delete;
Line: 25074

   G_LIST_TYPE_CODE_TBL_B.delete;
Line: 25075

   G_PRICING_GROUP_SEQUENCE_TBL_B.delete;
Line: 25076

   G_PRICING_PHASE_ID_TBL_B.delete;
Line: 25077

   G_OPER_CALCULATION_CODE_TBL_B.delete;
Line: 25078

   G_OPERAND_VALUE_TBL_B.delete;
Line: 25079

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

   G_ASK_FOR_FLAG_TBL_B.delete;
Line: 25081

   G_PRICE_FORMULA_ID_TBL_B.delete;
Line: 25082

   G_PRODUCT_PRECEDENCE_TBL_B.delete;
Line: 25083

   G_INCOMP_GRP_CODE_TBL_B.delete;
Line: 25084

   G_AUTOMATIC_FLAG_TBL_B.delete;
Line: 25085

   G_OVERRIDE_FLAG_TBL_B.delete;
Line: 25086

   G_PRIMARY_UOM_FLAG_TBL_B.delete;
Line: 25087

   G_PRINT_ON_INVOICE_FLAG_TBL_B.delete;
Line: 25088

   G_MODIFIER_LEVEL_CODE_TBL_B.delete;
Line: 25089

   G_BENEFIT_QTY_TBL_B.delete;
Line: 25090

   G_BENEFIT_UOM_CODE_TBL_B.delete;
Line: 25091

   G_LIST_LINE_NO_TBL_B.delete;
Line: 25092

   G_ACCRUAL_FLAG_TBL_B.delete;
Line: 25093

   G_ACCR_CONVERSION_RATE_TBL_B.delete;
Line: 25094

   G_ESTIM_ACCRUAL_RATE_TBL_B.delete;
Line: 25095

   G_HEADER_LIMIT_EXISTS_TBL_P.delete;
Line: 25096

   G_LINE_LIMIT_EXISTS_TBL_P.delete;
Line: 25097

   G_CHARGE_TYPE_CODE_TBL_P.delete;
Line: 25098

   G_CHARGE_SUBTYPE_CODE_TBL_P.delete;
Line: 25099

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

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

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

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

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

  INSERT_LDETS_PVT( p_LINE_DETAIL_index      => G_LINE_DETAIL_INDEX_LD_TBL,
                 p_LINE_DETAIL_TYPE_CODE  => G_LINE_DETAIL_TYPE_CODE_TBL,
                 p_PRICE_BREAK_TYPE_CODE  => G_PRICE_BREAK_TYPE_CODE_TBL,
                 p_LINE_INDEX             => G_LINE_INDEX_LD_TBL,
                 p_CREATED_FROM_LIST_HEADER_ID  =>G_LIST_HEADER_ID_LD_TBL,
                 p_CREATED_FROM_LIST_LINE_ID    =>G_LIST_LINE_ID_LD_TBL,
                 p_CREATED_FROM_LIST_LINE_TYPE  =>G_LIST_LINE_TYPE_TBL,
                 p_CREATED_FROM_LIST_TYPE_CODE  =>G_LIST_TYPE_CODE_TBL,
                 p_CREATED_FROM_SQL             =>G_CREATED_FROM_SQL_TBL,
                 p_PRICING_GROUP_SEQUENCE       =>G_PRICING_GROUP_SEQUENCE_TBL,
                 P_PRICING_PHASE_ID             =>G_PRICING_PHASE_ID_TBL,
                 p_OPERAND_CALCULATION_CODE     =>G_OPERAND_CALCULATION_CODE_TBL,
                 p_OPERAND_VALUE                =>G_OPERAND_VALUE_TBL,
                 p_NET_AMOUNT_FLAG              =>G_NET_AMOUNT_FLAG_TBL,  -- IT net_amount 2720717
                 p_ASK_FOR_FLAG                 =>G_ASK_FOR_FLAG_TBL,
                 p_PRICE_FORMULA_ID             =>G_PRICE_FORMULA_ID_TBL,
                 p_PRICING_STATUS_CODE          =>G_PRICING_STATUS_CODE_LD_TBL,
                 p_PRICING_STATUS_TEXT          =>G_PRICING_STATUS_TEXT_LD_TBL,
                 p_PRODUCT_PRECEDENCE           =>G_PRODUCT_PRECEDENCE_TBL ,
                 p_INCOMPATABLILITY_GRP_CODE    =>G_INCOMP_GRP_CODE_TBL,
                 p_PROCESSED_FLAG               =>G_PROCESSED_FLAG_LD_TBL,
                 p_APPLIED_FLAG                 =>G_APPLIED_FLAG_LD_TBL,
                 p_AUTOMATIC_FLAG               =>G_AUTOMATIC_FLAG_TBL,
                 p_OVERRIDE_FLAG                =>G_OVERRIDE_FLAG_TBL,
                 p_PRIMARY_UOM_FLAG             =>G_PRIMARY_UOM_FLAG_TBL,
                 p_MODIFIER_LEVEL_CODE          =>G_MODIFIER_LEVEL_CODE_TBL,
                 p_BENEFIT_QTY                  =>G_BENEFIT_QTY_TBL,
                 p_BENEFIT_UOM_CODE             =>G_BENEFIT_UOM_CODE_TBL,
                 p_LIST_LINE_NO                 =>G_LIST_LINE_NO_TBL,
                 p_ACCRUAL_FLAG                 =>G_ACCRUAL_FLAG_TBL,
                 p_ACCRUAL_CONVERSION_RATE      =>G_ACCRUAL_CONVERSION_RATE_TBL,
                 p_ESTIM_ACCRUAL_RATE           =>G_ESTIM_ACCRUAL_RATE_TBL,
                 p_HEADER_LIMIT_EXISTS          =>G_HEADER_LIMIT_EXISTS_TBL,
                 p_LINE_LIMIT_EXISTS            =>G_LINE_LIMIT_EXISTS_TBL,
                 p_CHARGE_TYPE_CODE            =>G_CHARGE_TYPE_CODE_TBL,
                 p_CHARGE_SUBTYPE_CODE         =>G_CHARGE_SUBTYPE_CODE_TBL,
                 p_ACCUM_CONTEXT                =>G_ACCUM_CONTEXT_TBL,   -- accum range break
                 p_ACCUM_ATTRIBUTE              =>G_ACCUM_ATTRIBUTE_TBL, -- accum range break
                 p_ACCUM_FLAG                   =>G_ACCUM_FLAG_TBL,      -- accum range break
                 x_status_code                  =>l_status_code,
                 x_status_text                  =>l_status_text
                 );
Line: 25314

   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: 25355

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

INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_line_attrs_tmp_N2,PRICING_STATUS_CODE,1
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE_TYPE,2
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_line_attrs_tmp_N2,CONTEXT,3
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_line_attrs_tmp_N2,ATTRIBUTE,4
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_line_attrs_tmp_N2,LINE_INDEX,5
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_line_attrs_tmp_N2,VALUE_FROM,6

INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,QP_PRICING_ATTRIBUTES_N2,LIST_LINE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,QP_PRICING_ATTRIBUTES_N2,EXCLUDER_FLAG,2

INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_ldets_tmp_N2,PRICING_PHASE_ID,1
INDX,QP_PREQ_GRP.select_modifiers.l_excl_cur,qp_npreq_ldets_tmp_N2,PRICING_STATUS_CODE,2

*/

-- Delete Excluded Line Details Directly if the inner select returns an excluded row
 UPDATE qp_npreq_ldets_tmp a
 SET    pricing_status_code = 'D_EXCLUDER'
 WHERE  pricing_phase_id = p_pricing_phase_id
 AND    pricing_status_code = G_STATUS_NEW
 AND    EXISTS ( SELECT/*+ ORDERED USE_NL(c) index(c qp_preq_line_attrs_tmp_N2) index(b QP_PRICING_ATTRIBUTES_N2) l_excl_cur */
                 'x'
                 FROM  qp_pricing_attributes b,
                       qp_npreq_line_attrs_tmp c
                 WHERE b.list_line_id = a.created_from_list_line_id
                 AND   b.excluder_flag = G_YES
                 AND   b.product_attribute_context = c.context
                 AND   b.product_attribute = c.attribute
                 AND   b.product_attr_value = c.value_from
                 AND   c.attribute_type = G_PRODUCT_TYPE
                 AND   c.pricing_status_code = G_STATUS_UNCHANGED
                 AND   c.line_index = a.line_index);
Line: 25398

  G_LIST_HEADER_ID_TBL_P.delete;
Line: 25399

  G_LIST_LINE_ID_TBL_P.delete;
Line: 25400

  G_LINE_INDEX_TBL_P.delete;
Line: 25401

  G_VALIDATED_FLAG_TBL_P.delete;
Line: 25402

  G_APPLIED_FLAG_TBL_P.delete;
Line: 25403

  G_ATTRIBUTE_LEVEL_TBL_P.delete;
Line: 25404

  G_ATTRIBUTE_TYPE_TBL_P.delete;
Line: 25405

  G_CONTEXT_TBL_P.delete;
Line: 25406

  G_ATTRIBUTE_TBL_P.delete;
Line: 25407

  G_VALUE_FROM_TBL_P.delete;
Line: 25408

  G_SETUP_VALUE_FROM_TBL_P.delete;
Line: 25409

  G_PRICING_ATTR_FLAG_TBL_P.delete;
Line: 25410

  G_PRODUCT_UOM_CODE_TBL_P.delete;
Line: 25411

  G_EXCLUDER_FLAG_TBL_P.delete;
Line: 25412

  G_QUALIFIER_PRECEDENCE_TBL_P.delete;
Line: 25413

  G_LINE_DETAIL_INDEX_TBL_P.delete;
Line: 25439

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

   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: 25534

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

END SELECT_MODIFIERS;
Line: 25541

  |PROCEDURE SELECT_PRICE_LIST_LINES
  +----------------------------------------------------------
*/
PROCEDURE SELECT_PRICE_LIST_LINES(p_pricing_phase_id   IN  NUMBER,
                                  p_freeze_override_flag IN VARCHAR2,
                                  x_status_code OUT NOCOPY       VARCHAR2,
                                  x_status_text OUT NOCOPY       VARCHAR2,
                                  p_control_rec       IN CONTROL_RECORD_TYPE) -- vivek
AS

-- [julin/4742368/4766135] Added QP_QUALIFIERS_N1 hint to prevent db from using N2
--[julin/5007789] Tuned query as follows:
-- 1. Performing line filter first.
-- 2. Performing qualifier filter before product filter
-- 3. Split into unions ('=', 'BETWEEN', 'NOT =') for better use of indexes
CURSOR l_prod_qual_cur (p_pricing_phase_id NUMBER) IS
-- Product and Qualifier Only. No pricing
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPL)
           INDEX(QPLATQ QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPQ QP_QUALIFIERS_N4)
           l_prod_qual_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qplatq.context                        qualifier_attribute_context,
       qplatq.attribute                      qualifier_attribute,
       qplatq.value_from                     qualifier_attribute_value,
       qpq.qualifier_grouping_no             qualifier_grouping_no,
       qpq.qualifier_precedence              qualifier_precedence,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value              setup_value_from,
       qpq.qualifier_attr_value_to           setup_value_to,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       'HQ'                                 qualifier_type
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM   --[julin/5007789]
       (SELECT /*+ dynamic_sampling(1) */ *
        FROM qp_npreq_lines_tmp
        WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
        AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatq,
       qp_qualifiers qpq,
       qp_list_headers_b qph,
       qp_price_req_sources_v qprs,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod,
       qp_list_lines qpl
WHERE  qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
-- 3594459, context and attribute OR'd together
AND   (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
       OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND    qpq.list_header_id = qph.list_header_id
AND   (qplines.price_flag = G_YES OR
       (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND    qpq.list_line_id = -1
AND   qpl.list_line_type_code in ('PLL','PMR','PBH')
AND   qpl.list_line_id   = qpprod.list_line_id
AND   qph.currency_code = qplines.currency_code
AND   qpl.modifier_level_code = qplines.line_type_code
AND   qph.active_flag = G_YES
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
       nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qpq.start_date_active, qplines.pricing_effective_date) and
       nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND   qpq.qualifier_context    = qplatq.context
AND   qpq.qualifier_attribute  = qplatq.attribute
AND   qpq.comparison_operator_code = '=' --[julin/5007789]
AND   qplatq.value_from   = qpq.qualifier_attr_value --bug#1761272 Multiple NOT =, [julin/5007789]
AND   qpq.active_flag = G_YES
AND   qpprod.pricing_phase_id = p_pricing_phase_id
AND   qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND   qpprod.product_attribute_context = qplatpr.context
AND   qpprod.product_attribute = qplatpr.attribute
AND   qpprod.product_attr_value = qplatpr.value_from
AND   qpprod.excluder_flag = G_NO
AND   qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND   qplatq.line_index = qplines.line_index
AND   qplatpr.line_index = qplines.line_index --[julin/5007789]
AND   qplatpr.line_index = qplatq.line_index
AND   qph.source_system_code = qprs.source_system_code
AND   qplines.request_type_code   = qprs.request_type_code
AND   qplatq.attribute_type = 'QUALIFIER'
AND   qplatq.pricing_status_code = G_STATUS_UNCHANGED
AND   qplatpr.attribute_type='PRODUCT'
AND   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND  ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
  OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPL)
           INDEX(QPLATQ QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPQ QP_QUALIFIERS_N5)
           l_prod_qual_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qplatq.context                        qualifier_attribute_context,
       qplatq.attribute                      qualifier_attribute,
       qplatq.value_from                     qualifier_attribute_value,
       qpq.qualifier_grouping_no             qualifier_grouping_no,
       qpq.qualifier_precedence              qualifier_precedence,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value              setup_value_from,
       qpq.qualifier_attr_value_to           setup_value_to,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       'HQ'                                 qualifier_type
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM   --[julin/5007789]
       (SELECT /*+ dynamic_sampling(1) */ *
        FROM qp_npreq_lines_tmp
        WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
        AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatq,
       qp_qualifiers qpq,
       qp_list_headers_b qph,
       qp_price_req_sources_v qprs,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod,
       qp_list_lines qpl
WHERE  qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
-- 3594459, context and attribute OR'd together
AND   (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
       OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND    qpq.list_header_id = qph.list_header_id
AND   (qplines.price_flag = G_YES OR
       (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND    qpq.list_line_id = -1
AND   qpl.list_line_type_code in ('PLL','PMR','PBH')
AND   qpl.list_line_id   = qpprod.list_line_id
AND   qph.currency_code = qplines.currency_code
AND   qpl.modifier_level_code = qplines.line_type_code
AND   qph.active_flag = G_YES
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
       nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qpq.start_date_active, qplines.pricing_effective_date) and
       nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND   qpq.qualifier_context    = qplatq.context
AND   qpq.qualifier_attribute  = qplatq.attribute
AND   qpq.comparison_operator_code = 'NOT =' --[julin/5007789]
AND   qpq.active_flag = G_YES
AND   qplatq.value_from  <> qpq.qualifier_attr_value --[julin/5007789]
AND   qpprod.pricing_phase_id = p_pricing_phase_id
AND   qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND   qpprod.product_attribute_context = qplatpr.context
AND   qpprod.product_attribute = qplatpr.attribute
AND   qpprod.product_attr_value = qplatpr.value_from
AND   qpprod.excluder_flag = G_NO
AND   qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND   qplatq.line_index = qplines.line_index
AND   qplatpr.line_index = qplines.line_index --[julin/5007789]
AND   qplatpr.line_index = qplatq.line_index
AND   qph.source_system_code = qprs.source_system_code
AND   qplines.request_type_code   = qprs.request_type_code
AND   qplatq.attribute_type = 'QUALIFIER'
AND   qplatq.pricing_status_code = G_STATUS_UNCHANGED
AND   qplatpr.attribute_type='PRODUCT'
AND   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND  ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
  OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPL)
           INDEX(QPLATQ QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPQ QP_QUALIFIERS_N6)
           l_prod_qual_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qplatq.context                        qualifier_attribute_context,
       qplatq.attribute                      qualifier_attribute,
       qplatq.value_from                     qualifier_attribute_value,
       qpq.qualifier_grouping_no             qualifier_grouping_no,
       qpq.qualifier_precedence              qualifier_precedence,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value              setup_value_from,
       qpq.qualifier_attr_value_to           setup_value_to,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       'HQ'                                 qualifier_type
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM   --[julin/5007789]
       (SELECT /*+ dynamic_sampling(1) */ *
        FROM qp_npreq_lines_tmp
        WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
        AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatq,
       qp_qualifiers qpq,
       qp_list_headers_b qph,
       qp_price_req_sources_v qprs,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod,
       qp_list_lines qpl
WHERE  qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
-- 3594459, context and attribute OR'd together
AND   (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
       OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND    qpq.list_header_id = qph.list_header_id
AND   (qplines.price_flag = G_YES OR
       (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND    qpq.list_line_id = -1
AND   qpl.list_line_type_code in ('PLL','PMR','PBH')
AND   qpl.list_line_id   = qpprod.list_line_id
AND   qph.currency_code = qplines.currency_code
AND   qpl.modifier_level_code = qplines.line_type_code
AND   qph.active_flag = G_YES
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
       nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qpq.start_date_active, qplines.pricing_effective_date) and
       nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND   qpq.qualifier_context    = qplatq.context
AND   qpq.qualifier_attribute  = qplatq.attribute
AND   qpq.comparison_operator_code = G_OPERATOR_BETWEEN --[julin/5007789]
AND   qpq.active_flag = G_YES
and   ((qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y) --[julin/5007789]
        and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to)
       or
       (qpq.qualifier_datatype = G_NUMERIC
        and qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
            between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number))
AND   qpprod.pricing_phase_id = p_pricing_phase_id
AND   qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND   qpprod.product_attribute_context = qplatpr.context
AND   qpprod.product_attribute = qplatpr.attribute
AND   qpprod.product_attr_value = qplatpr.value_from
AND   qpprod.excluder_flag = G_NO
AND   qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND   qplatq.line_index = qplines.line_index
AND   qplatpr.line_index = qplines.line_index --[julin/5007789]
AND   qplatpr.line_index = qplatq.line_index
AND   qph.source_system_code = qprs.source_system_code
AND   qplines.request_type_code   = qprs.request_type_code
AND   qplatq.attribute_type = 'QUALIFIER'
AND   qplatq.pricing_status_code = G_STATUS_UNCHANGED
AND   qplatpr.attribute_type='PRODUCT'
AND   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND  ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
  OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
ORDER BY 4,2;
Line: 25895

SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPL)
           INDEX(QPLATQ QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPQ QP_QUALIFIERS_N4)
       l_prod_qual_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qplatq.context                        qualifier_attribute_context,
       qplatq.attribute                      qualifier_attribute,
       qplatq.value_from                     qualifier_attribute_value,
       qpq.qualifier_grouping_no             qualifier_grouping_no,
       qpq.qualifier_precedence              qualifier_precedence,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value              setup_value_from,
       qpq.qualifier_attr_value_to           setup_value_to,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       'HQ'                                  qualifier_type,
       qcdt.currency_detail_id,
       qcdt.currency_header_id,
       qcdt.selling_rounding_factor,
       qplines.currency_code                 order_currency,
       qplines.pricing_effective_date        pricing_effective_date,
       qph.currency_code                     base_currency_code
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM   --[julin/5007789]
       (SELECT /*+ dynamic_sampling(1) */ *
        FROM qp_npreq_lines_tmp
        WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
        AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatq,
       qp_qualifiers qpq,
       qp_list_headers_b qph,
       qp_price_req_sources_v qprs,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod,
       qp_list_lines qpl,
       qp_currency_details qcdt
WHERE  qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
-- 3594459, context and attribute OR'd together
AND   (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
       OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND    qpq.list_header_id = qph.list_header_id
AND   (qplines.price_flag = G_YES OR
       (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND   qpq.list_line_id = -1
AND   qpl.list_line_type_code in ('PLL','PMR','PBH')
AND   qpl.list_line_id   = qpprod.list_line_id
--AND   qph.currency_code = qplines.currency_code
AND   qph.currency_header_id = qcdt.currency_header_id
AND   qplines.currency_code = qcdt.to_currency_code
AND   nvl(qplines.pricing_effective_date,trunc(sysdate)) between
       nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date) and
       nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
        (qcdt.curr_attribute_context is null
         and not exists
             (select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x'   --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp,   qp_currency_details qcdt1
               where qcdt1.curr_attribute_context IS NOT NULL
		 and qcdt1.curr_attribute_context = pa_tmp.context
                 and qcdt1.curr_attribute = pa_tmp.attribute
                 and qcdt1.curr_attribute_value = pa_tmp.value_from
                 and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
                 and qcdt1.to_currency_code = qcdt.to_currency_code
                 and qcdt1.currency_header_id = qcdt.currency_header_id
                 and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
        OR
        (qcdt.curr_attribute_context is not null
         and qcdt.precedence =
             (select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
               where qcdt2.curr_attribute_context IS NOT NULL
		 and qcdt2.curr_attribute_context = pa_tmp1.context
                 and qcdt2.curr_attribute = pa_tmp1.attribute
                 and qcdt2.curr_attribute_value = pa_tmp1.value_from
                 and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
                 and qcdt2.to_currency_code = qcdt.to_currency_code
                 and qcdt2.currency_header_id = qcdt.currency_header_id
                 and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp1.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
             )))
AND   qpl.modifier_level_code = qplines.line_type_code
AND   qph.active_flag = G_YES
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
       nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qpq.start_date_active, qplines.pricing_effective_date) and
       nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND   qpq.qualifier_context    = qplatq.context
AND   qpq.qualifier_attribute  = qplatq.attribute
AND   qpq.comparison_operator_code = '=' --[julin/5007789]
AND   qplatq.value_from   = qpq.qualifier_attr_value --bug#1761272 Multiple NOT =, [julin/5007789]
AND   qpq.active_flag = G_YES
AND   qpprod.pricing_phase_id = p_pricing_phase_id
AND   qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND   qpprod.product_attribute_context = qplatpr.context
AND   qpprod.product_attribute = qplatpr.attribute
AND   qpprod.product_attr_value = qplatpr.value_from
AND   qpprod.excluder_flag = G_NO
AND   qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND   qplatq.line_index = qplines.line_index
AND   qplatpr.line_index = qplines.line_index --[julin/5007789]
AND   qplatpr.line_index = qplatq.line_index
AND   qph.source_system_code = qprs.source_system_code
AND   qplines.request_type_code   = qprs.request_type_code
AND   qplatq.attribute_type = 'QUALIFIER'
AND   qplatq.pricing_status_code = G_STATUS_UNCHANGED
AND   qplatpr.attribute_type='PRODUCT'
AND   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND  ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
  OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPL)
           INDEX(QPLATQ QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPQ QP_QUALIFIERS_N5)
       l_prod_qual_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qplatq.context                        qualifier_attribute_context,
       qplatq.attribute                      qualifier_attribute,
       qplatq.value_from                     qualifier_attribute_value,
       qpq.qualifier_grouping_no             qualifier_grouping_no,
       qpq.qualifier_precedence              qualifier_precedence,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value              setup_value_from,
       qpq.qualifier_attr_value_to           setup_value_to,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       'HQ'                                  qualifier_type,
       qcdt.currency_detail_id,
       qcdt.currency_header_id,
       qcdt.selling_rounding_factor,
       qplines.currency_code                 order_currency,
       qplines.pricing_effective_date        pricing_effective_date,
       qph.currency_code                     base_currency_code
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM   --[julin/5007789]
       (SELECT /*+ dynamic_sampling(1) */ *
        FROM qp_npreq_lines_tmp
        WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
        AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatq,
       qp_qualifiers qpq,
       qp_list_headers_b qph,
       qp_price_req_sources_v qprs,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod,
       qp_list_lines qpl,
       qp_currency_details qcdt
WHERE  qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
-- 3594459, context and attribute OR'd together
AND   (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
       OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND    qpq.list_header_id = qph.list_header_id
AND   (qplines.price_flag = G_YES OR
       (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND   qpq.list_line_id = -1
AND   qpl.list_line_type_code in ('PLL','PMR','PBH')
AND   qpl.list_line_id   = qpprod.list_line_id
--AND   qph.currency_code = qplines.currency_code
AND   qph.currency_header_id = qcdt.currency_header_id
AND   qplines.currency_code = qcdt.to_currency_code
AND   nvl(qplines.pricing_effective_date,trunc(sysdate)) between
       nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date) and
       nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
        (qcdt.curr_attribute_context is null
         and not exists
             (select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x'   --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp,   qp_currency_details qcdt1
               where qcdt1.curr_attribute_context IS NOT NULL
		 and qcdt1.curr_attribute_context = pa_tmp.context
                 and qcdt1.curr_attribute = pa_tmp.attribute
                 and qcdt1.curr_attribute_value = pa_tmp.value_from
                 and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
                 and qcdt1.to_currency_code = qcdt.to_currency_code
                 and qcdt1.currency_header_id = qcdt.currency_header_id
                 and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
        OR
        (qcdt.curr_attribute_context is not null
         and qcdt.precedence =
             (select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
               where qcdt2.curr_attribute_context IS NOT NULL
		 and qcdt2.curr_attribute_context = pa_tmp1.context
                 and qcdt2.curr_attribute = pa_tmp1.attribute
                 and qcdt2.curr_attribute_value = pa_tmp1.value_from
                 and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
                 and qcdt2.to_currency_code = qcdt.to_currency_code
                 and qcdt2.currency_header_id = qcdt.currency_header_id
                 and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp1.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
             )))
AND   qpl.modifier_level_code = qplines.line_type_code
AND   qph.active_flag = G_YES
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
       nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qpq.start_date_active, qplines.pricing_effective_date) and
       nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND   qpq.qualifier_context    = qplatq.context
AND   qpq.qualifier_attribute  = qplatq.attribute
AND   qpq.comparison_operator_code = 'NOT =' --[julin/5007789]
AND   qpq.active_flag = G_YES
AND   qplatq.value_from  <> qpq.qualifier_attr_value --[julin/5007789]
AND   qpprod.pricing_phase_id = p_pricing_phase_id
AND   qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND   qpprod.product_attribute_context = qplatpr.context
AND   qpprod.product_attribute = qplatpr.attribute
AND   qpprod.product_attr_value = qplatpr.value_from
AND   qpprod.excluder_flag = G_NO
AND   qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND   qplatq.line_index = qplines.line_index
AND   qplatpr.line_index = qplines.line_index --[julin/5007789]
AND   qplatpr.line_index = qplatq.line_index
AND   qph.source_system_code = qprs.source_system_code
AND   qplines.request_type_code   = qprs.request_type_code
AND   qplatq.attribute_type = 'QUALIFIER'
AND   qplatq.pricing_status_code = G_STATUS_UNCHANGED
AND   qplatpr.attribute_type='PRODUCT'
AND   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND  ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
  OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPL)
           INDEX(QPLATQ QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPQ QP_QUALIFIERS_N6)
       l_prod_qual_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qplatq.context                        qualifier_attribute_context,
       qplatq.attribute                      qualifier_attribute,
       qplatq.value_from                     qualifier_attribute_value,
       qpq.qualifier_grouping_no             qualifier_grouping_no,
       qpq.qualifier_precedence              qualifier_precedence,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value              setup_value_from,
       qpq.qualifier_attr_value_to           setup_value_to,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       'HQ'                                  qualifier_type,
       qcdt.currency_detail_id,
       qcdt.currency_header_id,
       qcdt.selling_rounding_factor,
       qplines.currency_code                 order_currency,
       qplines.pricing_effective_date        pricing_effective_date,
       qph.currency_code                     base_currency_code
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM   --[julin/5007789]
       (SELECT /*+ dynamic_sampling(1) */ *
        FROM qp_npreq_lines_tmp
        WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
        AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatq,
       qp_qualifiers qpq,
       qp_list_headers_b qph,
       qp_price_req_sources_v qprs,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod,
       qp_list_lines qpl,
       qp_currency_details qcdt
WHERE  qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
-- 3594459, context and attribute OR'd together
AND   (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
       OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND    qpq.list_header_id = qph.list_header_id
AND   (qplines.price_flag = G_YES OR
       (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND   qpq.list_line_id = -1
AND   qpl.list_line_type_code in ('PLL','PMR','PBH')
AND   qpl.list_line_id   = qpprod.list_line_id
--AND   qph.currency_code = qplines.currency_code
AND   qph.currency_header_id = qcdt.currency_header_id
AND   qplines.currency_code = qcdt.to_currency_code
AND   nvl(qplines.pricing_effective_date,trunc(sysdate)) between
       nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date) and
       nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
        (qcdt.curr_attribute_context is null
         and not exists
             (select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x'   --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp,   qp_currency_details qcdt1
               where qcdt1.curr_attribute_context IS NOT NULL
		 and qcdt1.curr_attribute_context = pa_tmp.context
                 and qcdt1.curr_attribute = pa_tmp.attribute
                 and qcdt1.curr_attribute_value = pa_tmp.value_from
                 and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
                 and qcdt1.to_currency_code = qcdt.to_currency_code
                 and qcdt1.currency_header_id = qcdt.currency_header_id
                 and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
        OR
        (qcdt.curr_attribute_context is not null
         and qcdt.precedence =
             (select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
               where qcdt2.curr_attribute_context IS NOT NULL
		 and qcdt2.curr_attribute_context = pa_tmp1.context
                 and qcdt2.curr_attribute = pa_tmp1.attribute
                 and qcdt2.curr_attribute_value = pa_tmp1.value_from
                 and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
                 and qcdt2.to_currency_code = qcdt.to_currency_code
                 and qcdt2.currency_header_id = qcdt.currency_header_id
                 and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp1.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
             )))
AND   qpl.modifier_level_code = qplines.line_type_code
AND   qph.active_flag = G_YES
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
       nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qpq.start_date_active, qplines.pricing_effective_date) and
       nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND   qpq.qualifier_context    = qplatq.context
AND   qpq.qualifier_attribute  = qplatq.attribute
AND   qpq.comparison_operator_code = G_OPERATOR_BETWEEN --[julin/5007789]
AND   qpq.active_flag = G_YES
and   ((qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y) --[julin/5007789]
        and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to)
       or
       (qpq.qualifier_datatype = G_NUMERIC
        and qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
            between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number))
AND   qpprod.pricing_phase_id = p_pricing_phase_id
AND   qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_HDR_QUAL_IND
AND   qpprod.product_attribute_context = qplatpr.context
AND   qpprod.product_attribute = qplatpr.attribute
AND   qpprod.product_attr_value = qplatpr.value_from
AND   qpprod.excluder_flag = G_NO
AND   qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND   qplatq.line_index = qplines.line_index
AND   qplatpr.line_index = qplines.line_index --[julin/5007789]
AND   qplatpr.line_index = qplatq.line_index
AND   qph.source_system_code = qprs.source_system_code
AND   qplines.request_type_code   = qprs.request_type_code
AND   qplatq.attribute_type = 'QUALIFIER'
AND   qplatq.pricing_status_code = G_STATUS_UNCHANGED
AND   qplatpr.attribute_type='PRODUCT'
AND   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND  ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
  OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
ORDER BY 4,2;
Line: 26370

SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPLATPC QPL)
           index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2)
           index(qplatq QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5)
           INDEX(QPQ QP_QUALIFIERS_N4)
           l_prod_qual_pric_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qplatq.context                        qualifier_attribute_context,
       qplatq.attribute                      qualifier_attribute,
       qplatq.value_from                     qualifier_attribute_value,
       qpq.qualifier_grouping_no             qualifier_grouping_no,
       qpq.qualifier_precedence              qualifier_precedence,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value              setup_value_from,
       qpq.qualifier_attr_value_to           setup_value_to,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       'HQ' QUALIFIER_TYPE,
       qplatpc.attribute_level               pricing_attribute_level,
       qplatpc.attribute_type                pricing_attribute_type,
       qplatpc.context                       pricing_attribute_context,
       qplatpc.attribute                     pricing_attribute,
       qplatpc.value_from                    pricing_attr_value,
       qpprod.pricing_attr_value_from        pricing_setup_value_from,
       qpprod.pricing_attr_value_to          pricing_setup_value_to,
       qpprod.comparison_operator_code       pricing_comparison_operator,
       qpprod.pricing_attribute_datatype     pricing_datatype
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM   --[julin/5007789]
       (SELECT /*+ dynamic_sampling(1) */ *
        FROM qp_npreq_lines_tmp
        WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
        AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatq,
       qp_qualifiers qpq ,
       qp_list_headers_b qph,
       qp_price_req_sources_v qprs,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod ,
       qp_npreq_line_attrs_tmp qplatpc,
       qp_list_lines qpl
WHERE  qph.list_header_id = qpq.list_header_id
-- 3594459, context and attribute OR'd together
AND   (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
       OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND   (qplines.price_flag = G_YES OR
       (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND   qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND   qpq.list_line_id = -1
AND   qpl.list_line_id   = qpprod.list_line_id
AND   qph.currency_code = qplines.currency_code
AND   qpl.modifier_level_code = qplines.line_type_code
AND   qph.active_flag = G_YES
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
       nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qpq.start_date_active, qplines.pricing_effective_date) and
       nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND   qpl.list_line_type_code in ('PLL','PMR','PBH')
AND   qpq.qualifier_context    = qplatq.context
AND   qpq.qualifier_attribute  = qplatq.attribute
AND   qpq.comparison_operator_code = '=' --[julin/5007789]
AND   qplatq.value_from   = qpq.qualifier_attr_value --bug#1761272 Multiple NOT =, [julin/5007789]
AND   qpq.active_flag = G_YES
AND   qpprod.pricing_phase_id = p_pricing_phase_id
AND   qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND   qpprod.product_attribute_context = qplatpr.context
AND   qpprod.product_attribute = qplatpr.attribute
AND   qpprod.product_attr_value = qplatpr.value_from
AND   qpprod.excluder_flag = G_NO
AND   qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND   qpprod.pricing_attribute_context = qplatpc.context
AND   qpprod.pricing_attribute = qplatpc.attribute
AND   (qpprod.pricing_attr_value_from = qplatpc.value_from
        or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
AND   qplatq.line_index = qplatpc.line_index
AND   qplatq.line_index = qplines.line_index
AND   qplatpc.line_index = qplatpr.line_index
AND   qph.source_system_code = qprs.source_system_code
AND   qplines.request_type_code   = qprs.request_type_code
AND   qplatpr.line_index = qplines.line_index --[julin/4708044]
AND   qplatpr.attribute_type='PRODUCT'
AND   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND   qplatpc.attribute_type = 'PRICING'
AND   qplatpc.pricing_status_code = G_STATUS_UNCHANGED
AND   qplatq.attribute_type = 'QUALIFIER'
AND   qplatq.pricing_status_code = G_STATUS_UNCHANGED
--AND   qplatq.pricing_attr_flag = G_YES --[julin/4708044] wrong table, currently not reliable value, not used in index
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND  ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
  OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPLATPC QPL)
           index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2)
           index(qplatq QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5)
           INDEX(QPQ QP_QUALIFIERS_N5)
           l_prod_qual_pric_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qplatq.context                        qualifier_attribute_context,
       qplatq.attribute                      qualifier_attribute,
       qplatq.value_from                     qualifier_attribute_value,
       qpq.qualifier_grouping_no             qualifier_grouping_no,
       qpq.qualifier_precedence              qualifier_precedence,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value              setup_value_from,
       qpq.qualifier_attr_value_to           setup_value_to,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       'HQ' QUALIFIER_TYPE,
       qplatpc.attribute_level               pricing_attribute_level,
       qplatpc.attribute_type                pricing_attribute_type,
       qplatpc.context                       pricing_attribute_context,
       qplatpc.attribute                     pricing_attribute,
       qplatpc.value_from                    pricing_attr_value,
       qpprod.pricing_attr_value_from        pricing_setup_value_from,
       qpprod.pricing_attr_value_to          pricing_setup_value_to,
       qpprod.comparison_operator_code       pricing_comparison_operator,
       qpprod.pricing_attribute_datatype     pricing_datatype
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM   --[julin/5007789]
       (SELECT /*+ dynamic_sampling(1) */ *
        FROM qp_npreq_lines_tmp
        WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
        AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatq,
       qp_qualifiers qpq ,
       qp_list_headers_b qph,
       qp_price_req_sources_v qprs,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod ,
       qp_npreq_line_attrs_tmp qplatpc,
       qp_list_lines qpl
WHERE  qph.list_header_id = qpq.list_header_id
-- 3594459, context and attribute OR'd together
AND   (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
       OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND   (qplines.price_flag = G_YES OR
       (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND   qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND   qpq.list_line_id = -1
AND   qpl.list_line_id   = qpprod.list_line_id
AND   qph.currency_code = qplines.currency_code
AND   qpl.modifier_level_code = qplines.line_type_code
AND   qph.active_flag = G_YES
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
       nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qpq.start_date_active, qplines.pricing_effective_date) and
       nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND   qpl.list_line_type_code in ('PLL','PMR','PBH')
AND   qpq.qualifier_context    = qplatq.context
AND   qpq.qualifier_attribute  = qplatq.attribute
AND   qpq.comparison_operator_code = 'NOT =' --[julin/5007789]
AND   qpq.active_flag = G_YES
AND   qplatq.value_from  <> qpq.qualifier_attr_value --[julin/5007789]
AND   qpprod.pricing_phase_id = p_pricing_phase_id
AND   qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND   qpprod.product_attribute_context = qplatpr.context
AND   qpprod.product_attribute = qplatpr.attribute
AND   qpprod.product_attr_value = qplatpr.value_from
AND   qpprod.excluder_flag = G_NO
AND   qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND   qpprod.pricing_attribute_context = qplatpc.context
AND   qpprod.pricing_attribute = qplatpc.attribute
AND   (qpprod.pricing_attr_value_from = qplatpc.value_from
        or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
AND   qplatq.line_index = qplatpc.line_index
AND   qplatq.line_index = qplines.line_index
AND   qplatpc.line_index = qplatpr.line_index
AND   qph.source_system_code = qprs.source_system_code
AND   qplines.request_type_code   = qprs.request_type_code
AND   qplatpr.line_index = qplines.line_index --[julin/4708044]
AND   qplatpr.attribute_type='PRODUCT'
AND   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND   qplatpc.attribute_type = 'PRICING'
AND   qplatpc.pricing_status_code = G_STATUS_UNCHANGED
AND   qplatq.attribute_type = 'QUALIFIER'
AND   qplatq.pricing_status_code = G_STATUS_UNCHANGED
--AND   qplatq.pricing_attr_flag = G_YES --[julin/4708044] wrong table, currently not reliable value, not used in index
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND  ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
  OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPLATPC QPL)
           index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2)
           index(qplatq QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5)
           INDEX(QPQ QP_QUALIFIERS_N6)
           l_prod_qual_pric_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qplatq.context                        qualifier_attribute_context,
       qplatq.attribute                      qualifier_attribute,
       qplatq.value_from                     qualifier_attribute_value,
       qpq.qualifier_grouping_no             qualifier_grouping_no,
       qpq.qualifier_precedence              qualifier_precedence,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value              setup_value_from,
       qpq.qualifier_attr_value_to           setup_value_to,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       'HQ' QUALIFIER_TYPE,
       qplatpc.attribute_level               pricing_attribute_level,
       qplatpc.attribute_type                pricing_attribute_type,
       qplatpc.context                       pricing_attribute_context,
       qplatpc.attribute                     pricing_attribute,
       qplatpc.value_from                    pricing_attr_value,
       qpprod.pricing_attr_value_from        pricing_setup_value_from,
       qpprod.pricing_attr_value_to          pricing_setup_value_to,
       qpprod.comparison_operator_code       pricing_comparison_operator,
       qpprod.pricing_attribute_datatype     pricing_datatype
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM   --[julin/5007789]
       (SELECT /*+ dynamic_sampling(1) */ *
        FROM qp_npreq_lines_tmp
        WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
        AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatq,
       qp_qualifiers qpq ,
       qp_list_headers_b qph,
       qp_price_req_sources_v qprs,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod ,
       qp_npreq_line_attrs_tmp qplatpc,
       qp_list_lines qpl
WHERE  qph.list_header_id = qpq.list_header_id
-- 3594459, context and attribute OR'd together
AND   (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
       OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
AND   (qplines.price_flag = G_YES OR
       (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND   qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND   qpq.list_line_id = -1
AND   qpl.list_line_id   = qpprod.list_line_id
AND   qph.currency_code = qplines.currency_code
AND   qpl.modifier_level_code = qplines.line_type_code
AND   qph.active_flag = G_YES
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
       nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qpq.start_date_active, qplines.pricing_effective_date) and
       nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND   qpl.list_line_type_code in ('PLL','PMR','PBH')
AND   qpq.qualifier_context    = qplatq.context
AND   qpq.qualifier_attribute  = qplatq.attribute
AND   qpq.comparison_operator_code = G_OPERATOR_BETWEEN --[julin/5007789]
AND   qpq.active_flag = G_YES
and   ((qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y) --[julin/5007789]
        and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to)
       or
       (qpq.qualifier_datatype = G_NUMERIC
        and qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
            between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number))
AND   qpprod.pricing_phase_id = p_pricing_phase_id
AND   qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND   qpprod.product_attribute_context = qplatpr.context
AND   qpprod.product_attribute = qplatpr.attribute
AND   qpprod.product_attr_value = qplatpr.value_from
AND   qpprod.excluder_flag = G_NO
AND   qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND   qpprod.pricing_attribute_context = qplatpc.context
AND   qpprod.pricing_attribute = qplatpc.attribute
AND   (qpprod.pricing_attr_value_from = qplatpc.value_from
        or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
AND   qplatq.line_index = qplatpc.line_index
AND   qplatq.line_index = qplines.line_index
AND   qplatpc.line_index = qplatpr.line_index
AND   qph.source_system_code = qprs.source_system_code
AND   qplines.request_type_code   = qprs.request_type_code
AND   qplatpr.line_index = qplines.line_index --[julin/4708044]
AND   qplatpr.attribute_type='PRODUCT'
AND   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND   qplatpc.attribute_type = 'PRICING'
AND   qplatpc.pricing_status_code = G_STATUS_UNCHANGED
AND   qplatq.attribute_type = 'QUALIFIER'
AND   qplatq.pricing_status_code = G_STATUS_UNCHANGED
--AND   qplatq.pricing_attr_flag = G_YES --[julin/4708044] wrong table, currently not reliable value, not used in index
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND  ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
  OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
ORDER BY 4,2;
Line: 26768

SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPLATPC QPL)
           index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2)
           index(qplatq QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5)
           INDEX(QPQ QP_QUALIFIERS_N4)
           l_prod_qual_pric_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qplatq.context                        qualifier_attribute_context,
       qplatq.attribute                      qualifier_attribute,
       qplatq.value_from                     qualifier_attribute_value,
       qpq.qualifier_grouping_no             qualifier_grouping_no,
       qpq.qualifier_precedence              qualifier_precedence,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value              setup_value_from,
       qpq.qualifier_attr_value_to           setup_value_to,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       'HQ' QUALIFIER_TYPE,
       qplatpc.attribute_level               pricing_attribute_level,
       qplatpc.attribute_type                pricing_attribute_type,
       qplatpc.context                       pricing_attribute_context,
       qplatpc.attribute                     pricing_attribute,
       qplatpc.value_from                    pricing_attr_value,
       qpprod.pricing_attr_value_from        pricing_setup_value_from,
       qpprod.pricing_attr_value_to          pricing_setup_value_to,
       qpprod.comparison_operator_code       pricing_comparison_operator,
       qpprod.pricing_attribute_datatype     pricing_datatype,
       qcdt.currency_detail_id,
       qcdt.currency_header_id,
       qcdt.selling_rounding_factor,
       qplines.currency_code                 order_currency,
       qplines.pricing_effective_date        pricing_effective_date,
       qph.currency_code                     base_currency_code
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM   --[julin/5007789]
       (SELECT /*+ dynamic_sampling(1) */ *
        FROM qp_npreq_lines_tmp
        WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
        AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatq,
       qp_qualifiers qpq ,
       qp_list_headers_b qph,
       qp_price_req_sources_v qprs,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod ,
       qp_npreq_line_attrs_tmp qplatpc,
       qp_list_lines qpl,
       qp_currency_details qcdt
WHERE  qph.list_header_id = qpq.list_header_id
-- 3594459, context and attribute OR'd together
AND   (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
       OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND   (qplines.price_flag = G_YES OR
       (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND    qph.list_header_id = qpl.list_header_id
AND    qpq.list_line_id = -1
AND    qpl.list_line_id   = qpprod.list_line_id
--AND   qph.currency_code = qplines.currency_code
AND qph.currency_header_id = qcdt.currency_header_id
AND qplines.currency_code = qcdt.to_currency_code
AND qplines.pricing_effective_date between
    nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date)
    and nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
        (qcdt.curr_attribute_context is null
         and not exists
             (select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x'   --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp,   qp_currency_details qcdt1
               where qcdt1.curr_attribute_context IS NOT NULL
		 and qcdt1.curr_attribute_context = pa_tmp.context
                 and qcdt1.curr_attribute = pa_tmp.attribute
                 and qcdt1.curr_attribute_value = pa_tmp.value_from
                 and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
                 and qcdt1.to_currency_code = qcdt.to_currency_code
                 and qcdt1.currency_header_id = qcdt.currency_header_id
                 and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
        OR
        (qcdt.curr_attribute_context is not null
         and qcdt.precedence =
             (select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
               where qcdt2.curr_attribute_context IS NOT NULL
		 and qcdt2.curr_attribute_context = pa_tmp1.context
                 and qcdt2.curr_attribute = pa_tmp1.attribute
                 and qcdt2.curr_attribute_value = pa_tmp1.value_from
                 and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
                 and qcdt2.to_currency_code = qcdt.to_currency_code
                 and qcdt2.currency_header_id = qcdt.currency_header_id
                 and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp1.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
             )))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
      nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
      nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
      nvl(qpq.start_date_active, qplines.pricing_effective_date) and
      nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpq.qualifier_context    = qplatq.context
AND qpq.qualifier_attribute  = qplatq.attribute
AND qpq.comparison_operator_code = '=' --[julin/5007789]
AND qplatq.value_from   = qpq.qualifier_attr_value --bug#1761272 Multiple NOT =, [julin/5007789]
AND qpq.active_flag = G_YES
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qpprod.pricing_attribute_context = qplatpc.context
AND qpprod.pricing_attribute = qplatpc.attribute
AND (qpprod.pricing_attr_value_from = qplatpc.value_from
      or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
AND qplatq.line_index = qplatpc.line_index
AND qplatq.line_index = qplines.line_index
AND qplatpc.line_index = qplatpr.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code   = qprs.request_type_code
AND qplatpr.line_index = qplines.line_index --[julin/4708044]
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND qplatpc.attribute_type = 'PRICING'
AND qplatpc.pricing_status_code = G_STATUS_UNCHANGED
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
--AND   qplatq.pricing_attr_flag = G_YES --[julin/4708044] wrong table, currently not reliable value, not used in index
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND  ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
  OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPLATPC QPL)
           index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2)
           index(qplatq QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5)
           INDEX(QPQ QP_QUALIFIERS_N5)
           l_prod_qual_pric_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qplatq.context                        qualifier_attribute_context,
       qplatq.attribute                      qualifier_attribute,
       qplatq.value_from                     qualifier_attribute_value,
       qpq.qualifier_grouping_no             qualifier_grouping_no,
       qpq.qualifier_precedence              qualifier_precedence,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value              setup_value_from,
       qpq.qualifier_attr_value_to           setup_value_to,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       'HQ' QUALIFIER_TYPE,
       qplatpc.attribute_level               pricing_attribute_level,
       qplatpc.attribute_type                pricing_attribute_type,
       qplatpc.context                       pricing_attribute_context,
       qplatpc.attribute                     pricing_attribute,
       qplatpc.value_from                    pricing_attr_value,
       qpprod.pricing_attr_value_from        pricing_setup_value_from,
       qpprod.pricing_attr_value_to          pricing_setup_value_to,
       qpprod.comparison_operator_code       pricing_comparison_operator,
       qpprod.pricing_attribute_datatype     pricing_datatype,
       qcdt.currency_detail_id,
       qcdt.currency_header_id,
       qcdt.selling_rounding_factor,
       qplines.currency_code                 order_currency,
       qplines.pricing_effective_date        pricing_effective_date,
       qph.currency_code                     base_currency_code
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM   --[julin/5007789]
       (SELECT /*+ dynamic_sampling(1) */ *
        FROM qp_npreq_lines_tmp
        WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
        AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatq,
       qp_qualifiers qpq ,
       qp_list_headers_b qph,
       qp_price_req_sources_v qprs,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod ,
       qp_npreq_line_attrs_tmp qplatpc,
       qp_list_lines qpl,
       qp_currency_details qcdt
WHERE  qph.list_header_id = qpq.list_header_id
-- 3594459, context and attribute OR'd together
AND   (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
       OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND   (qplines.price_flag = G_YES OR
       (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND    qph.list_header_id = qpl.list_header_id
AND    qpq.list_line_id = -1
AND    qpl.list_line_id   = qpprod.list_line_id
--AND   qph.currency_code = qplines.currency_code
AND qph.currency_header_id = qcdt.currency_header_id
AND qplines.currency_code = qcdt.to_currency_code
AND qplines.pricing_effective_date between
    nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date)
    and nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
        (qcdt.curr_attribute_context is null
         and not exists
             (select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x'   --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp,   qp_currency_details qcdt1
               where qcdt1.curr_attribute_context IS NOT NULL
		 and qcdt1.curr_attribute_context = pa_tmp.context
                 and qcdt1.curr_attribute = pa_tmp.attribute
                 and qcdt1.curr_attribute_value = pa_tmp.value_from
                 and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
                 and qcdt1.to_currency_code = qcdt.to_currency_code
                 and qcdt1.currency_header_id = qcdt.currency_header_id
                 and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
        OR
        (qcdt.curr_attribute_context is not null
         and qcdt.precedence =
             (select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
               where qcdt2.curr_attribute_context IS NOT NULL
		 and qcdt2.curr_attribute_context = pa_tmp1.context
                 and qcdt2.curr_attribute = pa_tmp1.attribute
                 and qcdt2.curr_attribute_value = pa_tmp1.value_from
                 and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
                 and qcdt2.to_currency_code = qcdt.to_currency_code
                 and qcdt2.currency_header_id = qcdt.currency_header_id
                 and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp1.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
             )))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
      nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
      nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
      nvl(qpq.start_date_active, qplines.pricing_effective_date) and
      nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpq.qualifier_context    = qplatq.context
AND qpq.qualifier_attribute  = qplatq.attribute
AND qpq.comparison_operator_code = 'NOT =' --[julin/5007789]
AND qpq.active_flag = G_YES
AND qplatq.value_from  <> qpq.qualifier_attr_value --[julin/5007789]
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qpprod.pricing_attribute_context = qplatpc.context
AND qpprod.pricing_attribute = qplatpc.attribute
AND (qpprod.pricing_attr_value_from = qplatpc.value_from
      or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
AND qplatq.line_index = qplatpc.line_index
AND qplatq.line_index = qplines.line_index
AND qplatpc.line_index = qplatpr.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code   = qprs.request_type_code
AND qplatpr.line_index = qplines.line_index --[julin/4708044]
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND qplatpc.attribute_type = 'PRICING'
AND qplatpc.pricing_status_code = G_STATUS_UNCHANGED
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
--AND   qplatq.pricing_attr_flag = G_YES --[julin/4708044] wrong table, currently not reliable value, not used in index
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND  ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
  OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
UNION ALL
SELECT /*+ ORDERED USE_NL(QPLATQ QPQ QPH QPRS QPLATPR QPPROD QPLATPC QPL)
           index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2)
           index(qplatq QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPLAPR QP_PREQ_LINE_ATTRS_TMP_N1)
           INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5)
           INDEX(QPQ QP_QUALIFIERS_N6)
           l_prod_qual_pric_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qplatq.context                        qualifier_attribute_context,
       qplatq.attribute                      qualifier_attribute,
       qplatq.value_from                     qualifier_attribute_value,
       qpq.qualifier_grouping_no             qualifier_grouping_no,
       qpq.qualifier_precedence              qualifier_precedence,
       qpq.qualifier_datatype,
       qpq.qualifier_attr_value              setup_value_from,
       qpq.qualifier_attr_value_to           setup_value_to,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       'HQ' QUALIFIER_TYPE,
       qplatpc.attribute_level               pricing_attribute_level,
       qplatpc.attribute_type                pricing_attribute_type,
       qplatpc.context                       pricing_attribute_context,
       qplatpc.attribute                     pricing_attribute,
       qplatpc.value_from                    pricing_attr_value,
       qpprod.pricing_attr_value_from        pricing_setup_value_from,
       qpprod.pricing_attr_value_to          pricing_setup_value_to,
       qpprod.comparison_operator_code       pricing_comparison_operator,
       qpprod.pricing_attribute_datatype     pricing_datatype,
       qcdt.currency_detail_id,
       qcdt.currency_header_id,
       qcdt.selling_rounding_factor,
       qplines.currency_code                 order_currency,
       qplines.pricing_effective_date        pricing_effective_date,
       qph.currency_code                     base_currency_code
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM   --[julin/5007789]
       (SELECT /*+ dynamic_sampling(1) */ *
        FROM qp_npreq_lines_tmp
        WHERE processed_code IN (G_STS_LHS_NOT_FOUND, G_NO_LIST_PASSED)
        AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatq,
       qp_qualifiers qpq ,
       qp_list_headers_b qph,
       qp_price_req_sources_v qprs,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod ,
       qp_npreq_line_attrs_tmp qplatpc,
       qp_list_lines qpl,
       qp_currency_details qcdt
WHERE  qph.list_header_id = qpq.list_header_id
-- 3594459, context and attribute OR'd together
AND   (qpq.qualifier_context <> G_LIST_HEADER_CONTEXT --bug 2799670
       OR qpq.qualifier_attribute <> G_PRICELIST_ATTRIBUTE) --bug 2799670
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND   (qplines.price_flag = G_YES OR
       (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND    qph.list_header_id = qpl.list_header_id
AND    qpq.list_line_id = -1
AND    qpl.list_line_id   = qpprod.list_line_id
--AND   qph.currency_code = qplines.currency_code
AND qph.currency_header_id = qcdt.currency_header_id
AND qplines.currency_code = qcdt.to_currency_code
AND qplines.pricing_effective_date between
    nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date)
    and nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
        (qcdt.curr_attribute_context is null
         and not exists
             (select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x'   --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp,   qp_currency_details qcdt1
               where qcdt1.curr_attribute_context IS NOT NULL
		 and qcdt1.curr_attribute_context = pa_tmp.context
                 and qcdt1.curr_attribute = pa_tmp.attribute
                 and qcdt1.curr_attribute_value = pa_tmp.value_from
                 and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
                 and qcdt1.to_currency_code = qcdt.to_currency_code
                 and qcdt1.currency_header_id = qcdt.currency_header_id
                 and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
        OR
        (qcdt.curr_attribute_context is not null
         and qcdt.precedence =
             (select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
               where qcdt2.curr_attribute_context IS NOT NULL
		 and qcdt2.curr_attribute_context = pa_tmp1.context
                 and qcdt2.curr_attribute = pa_tmp1.attribute
                 and qcdt2.curr_attribute_value = pa_tmp1.value_from
                 and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
                 and qcdt2.to_currency_code = qcdt.to_currency_code
                 and qcdt2.currency_header_id = qcdt.currency_header_id
                 and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp1.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
             )))
AND qpl.modifier_level_code = qplines.line_type_code
AND qph.active_flag = G_YES
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
      nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
      nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
      nvl(qpq.start_date_active, qplines.pricing_effective_date) and
      nvl(qpq.end_date_active,qplines.pricing_effective_date)
AND qpl.list_line_type_code in ('PLL','PMR','PBH')
AND qpq.qualifier_context    = qplatq.context
AND qpq.qualifier_attribute  = qplatq.attribute
AND qpq.comparison_operator_code = G_OPERATOR_BETWEEN --[julin/5007789]
AND qpq.active_flag = G_YES
and   ((qpq.qualifier_datatype IN (G_VARCHAR,G_DATE_X,G_DATE_Y) --[julin/5007789]
        and qplatq.value_from between qpq.qualifier_attr_value and qpq.qualifier_attr_value_to)
       or
       (qpq.qualifier_datatype = G_NUMERIC
        and qp_number.canonical_to_number(decode(qpq.qualifier_datatype,G_NUMERIC,qplatq.value_from,null))
            between qpq.qual_attr_value_from_number and qpq.qual_attr_value_to_number))
AND qpprod.pricing_phase_id = p_pricing_phase_id
AND qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_HDR_QUAL_IND
AND qpprod.product_attribute_context = qplatpr.context
AND qpprod.product_attribute = qplatpr.attribute
AND qpprod.product_attr_value = qplatpr.value_from
AND qpprod.excluder_flag = G_NO
AND qpprod.list_header_id = qph.list_header_id --[julin/5007789]
AND qpprod.pricing_attribute_context = qplatpc.context
AND qpprod.pricing_attribute = qplatpc.attribute
AND (qpprod.pricing_attr_value_from = qplatpc.value_from
      or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
AND qplatq.line_index = qplatpc.line_index
AND qplatq.line_index = qplines.line_index
AND qplatpc.line_index = qplatpr.line_index
AND qph.source_system_code = qprs.source_system_code
AND qplines.request_type_code   = qprs.request_type_code
AND qplatpr.line_index = qplines.line_index --[julin/4708044]
AND qplatpr.attribute_type='PRODUCT'
AND qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND qplatpc.attribute_type = 'PRICING'
AND qplatpc.pricing_status_code = G_STATUS_UNCHANGED
AND qplatq.attribute_type = 'QUALIFIER'
AND qplatq.pricing_status_code = G_STATUS_UNCHANGED
--AND   qplatq.pricing_attr_flag = G_YES --[julin/4708044] wrong table, currently not reliable value, not used in index
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
AND  ((nvl(qplatq.DERIVED_QUALIFIER_FLAG,'N') ='N' )
  OR (qplatq.DERIVED_QUALIFIER_FLAG ='Y' AND qpq.QUALIFY_HIER_DESCENDENTS_FLAG ='Y')) -- Added for TCA
ORDER BY 4,2;
Line: 27304

SELECT /*+ ORDERED USE_NL(QPLATPR QPPROD QPL QPH QPRS) index(qplatpr QP_PREQ_LINE_ATTRS_TMP_N1) l_prod_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level     product_attribute_level,
       qplatpr.attribute_type      product_attribute_type,
       qplatpr.context             product_attribute_context,
       qplatpr.attribute           product_attribute,
       qplatpr.value_from          product_attr_value,
       qpprod.product_uom_code     product_uom_code,
       qpprod.excluder_flag,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator     operand_calculation_code,
       qpl.operand                 operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code          created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5000789]
     (SELECT /*+ dynamic_sampling(1) */ *
      FROM  qp_npreq_lines_tmp
      WHERE processed_code IN (G_STS_LHS_NOT_FOUND,G_NO_LIST_PASSED)
      AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
     qp_npreq_line_attrs_tmp qplatpr,
     qp_pricing_attributes qpprod ,
     qp_list_lines qpl ,
     qp_list_headers_b  qph  ,
     qp_price_req_sources_v qprs
WHERE
     qph.list_header_id = qpprod.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND  qpl.qualification_ind = QP_PREQ_GRP.G_YES_PROD_IND
AND  qpl.list_line_type_code in ('PLL','PMR','PBH')
AND  (qplines.price_flag = G_YES OR
      (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND  qph.currency_code = qplines.currency_code
AND  qpl.modifier_level_code = qplines.line_type_code
AND  qph.active_flag = G_YES
AND  qpl.list_line_id = qpprod.list_line_id
AND  nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND  nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
      nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
      nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND  qpl.pricing_phase_id = p_pricing_phase_id
AND  qpprod.pricing_phase_id = p_pricing_phase_id
AND  qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_IND
AND  qpprod.product_attribute_context = qplatpr.context
AND  qpprod.product_attribute = qplatpr.attribute
AND  qpprod.product_attr_value = qplatpr.value_from
AND  qpprod.excluder_flag = G_NO
AND  qph.source_system_code = qprs.source_system_code
AND  qplines.request_type_code   = qprs.request_type_code
AND  qplatpr.line_index = qplines.line_index
AND  qplatpr.attribute_type='PRODUCT' --[julin/5007789]
AND  qplatpr.pricing_status_code=G_STATUS_UNCHANGED --[julin/5007789]
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 4,2;  --order by list_line_id
Line: 27385

SELECT /*+ ORDERED USE_NL(QPLATPR QPPROD QPL QPH QPRS) index(qplatpr QP_PREQ_LINE_ATTRS_TMP_N1) l_prod_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       qcdt.currency_detail_id,
       qcdt.currency_header_id,
       qcdt.selling_rounding_factor,
       qplines.currency_code                 order_currency,
       qplines.pricing_effective_date        pricing_effective_date,
       qph.currency_code                     base_currency_code
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM --[julin/5007789]
     (SELECT /*+ dynamic_sampling(1) */ *
      FROM  qp_npreq_lines_tmp
      WHERE processed_code IN (G_STS_LHS_NOT_FOUND,G_NO_LIST_PASSED)
      AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod,
       qp_list_lines qpl,
       qp_list_headers_b qph,
       qp_price_req_sources_v qprs,
       qp_currency_details qcdt
WHERE  qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND   (qplines.price_flag = G_YES OR
       (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND   qpl.list_line_type_code in ('PLL','PMR','PBH')
AND   qpl.list_line_id   = qpprod.list_line_id
--AND   qph.currency_code = qplines.currency_code
AND   qph.currency_header_id = qcdt.currency_header_id
AND   qplines.currency_code = qcdt.to_currency_code
AND   qplines.pricing_effective_date between
      nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date)
      and nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
        (qcdt.curr_attribute_context is null
         and not exists
             (select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x'   --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp,   qp_currency_details qcdt1
               where qcdt1.curr_attribute_context IS NOT NULL
		 and qcdt1.curr_attribute_context = pa_tmp.context
                 and qcdt1.curr_attribute = pa_tmp.attribute
                 and qcdt1.curr_attribute_value = pa_tmp.value_from
                 and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
                 and qcdt1.to_currency_code = qcdt.to_currency_code
                 and qcdt1.currency_header_id = qcdt.currency_header_id
                 and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
        OR
        (qcdt.curr_attribute_context is not null
         and qcdt.precedence =
             (select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
               where qcdt2.curr_attribute_context IS NOT NULL
		 and qcdt2.curr_attribute_context = pa_tmp1.context
                 and qcdt2.curr_attribute = pa_tmp1.attribute
                 and qcdt2.curr_attribute_value = pa_tmp1.value_from
                 and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
                 and qcdt2.to_currency_code = qcdt.to_currency_code
                 and qcdt2.currency_header_id = qcdt.currency_header_id
                 and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp1.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
             )))
AND   qpl.modifier_level_code = qplines.line_type_code
AND   qph.active_flag = G_YES
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
       nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND   qpprod.pricing_phase_id = p_pricing_phase_id
AND   qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_IND
AND   qpprod.product_attribute_context = qplatpr.context
AND   qpprod.product_attribute = qplatpr.attribute
AND   qpprod.product_attr_value = qplatpr.value_from
AND   qpprod.excluder_flag = G_NO
AND   qph.source_system_code = qprs.source_system_code
AND   qplines.request_type_code   = qprs.request_type_code
AND   qplatpr.attribute_type='PRODUCT'
AND   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND   QPLATPR.LINE_INDEX = QPLINES.LINE_INDEX -- 4331801/4365538
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 4,2;
Line: 27513

SELECT /*+ ORDERED USE_NL(QPLATPR QPPROD QPLATPC QPL QPH QPRS) index(qplatpr QP_PREQ_LINE_ATTRS_TMP_N1) INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5) index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2) l_prod_pric_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       qplatpc.attribute_level               pricing_attribute_level,
       qplatpc.attribute_type                pricing_attribute_type,
       qplatpc.context                       pricing_attribute_context,
       qplatpc.attribute                     pricing_attribute,
       qplatpc.value_from                    pricing_attr_value,
       qpprod.pricing_attr_value_from        pricing_setup_value_from,
       qpprod.pricing_attr_value_to          pricing_setup_value_to,
       qpprod.comparison_operator_code       pricing_comparison_operator,
       qpprod.pricing_attribute_datatype     pricing_datatype
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM  --[julin/5007789]
      (SELECT /*+ dynamic_sampling(1) */ *
       FROM  qp_npreq_lines_tmp
       WHERE processed_code IN (G_STS_LHS_NOT_FOUND,G_NO_LIST_PASSED)
       AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod,
       qp_npreq_line_attrs_tmp qplatpc,
       qp_list_lines qpl,
       qp_list_headers_b  qph,
       qp_price_req_sources_v QPRS
WHERE
      qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND   qpl.list_line_id = qpprod.list_line_id
AND   qpl.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_IND
AND   qpl.list_line_type_code in ('PLL','PMR','PBH')
AND  (qplines.price_flag = G_YES OR
      (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
AND  qph.currency_code = qplines.currency_code --5922273
AND  qph.active_flag = G_YES
AND  qpl.pricing_phase_id = p_pricing_phase_id
AND  nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
       nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
       nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND  nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
      nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date) and
      nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND  qpprod.pricing_phase_id = p_pricing_phase_id
AND  qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_IND
AND  qpprod.product_attribute_context = qplatpr.context
AND  qpprod.product_attribute = qplatpr.attribute
AND  qpprod.product_attr_value = qplatpr.value_from
AND  qpprod.excluder_flag = G_NO
AND  qpprod.pricing_attribute_context = qplatpc.context
AND  qpprod.pricing_attribute = qplatpc.attribute
AND (qpprod.pricing_attr_value_from = qplatpc.value_from
         or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
         --or qpl.price_break_type_code = G_RECURRING_BREAK)
AND  qplatpc.attribute_type = 'PRICING' --[julin/5007789]
AND  qplatpc.pricing_status_code = G_STATUS_UNCHANGED --[julin/5007789]
AND  qplatpc.line_index = qplines.line_index
AND  qplatpr.line_index = qplines.line_index
AND  qplatpr.attribute_type = 'PRODUCT' --[julin/5007789]
AND  qplatpr.pricing_status_code = G_STATUS_UNCHANGED --[julin/5007789]
AND  qph.source_system_code = qprs.source_system_code
AND  qplines.request_type_code   = qprs.request_type_code
--AND   qplatpc.pricing_attr_flag = G_YES --[julin/4708044] currently not reliable value, not used in index
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 4,2;
Line: 27613

SELECT /*+ ORDERED USE_NL(QPLATPR QPPROD QPLATPC QPL QPH QPRS) index(qplatpr QP_PREQ_LINE_ATTRS_TMP_N1) INDEX(QPPROD QP_PRICING_ATTRIBUTES_N5) index(qplatpc QP_PREQ_LINE_ATTRS_TMP_N2) l_prod_pric_cur_pl */
       qpl.list_header_id,
       qpl.list_line_id,
       qpl.list_line_type_code,
       qplatpr.line_index,
       qplatpr.applied_flag,
       qplatpr.attribute_level               product_attribute_level,
       qplatpr.attribute_type                product_attribute_type,
       qplatpr.context                       product_attribute_context,
       qplatpr.attribute                     product_attribute,
       qplatpr.value_from                    product_attr_value,
       qpprod.product_uom_code               product_uom_code,
       qpprod.excluder_flag,
       qpl.automatic_flag,
       qpl.modifier_level_code,
       qpl.primary_uom_flag,
       qpl.arithmetic_operator               operand_calculation_code,
       qpl.operand                           operand_value,
       qpl.pricing_group_sequence,
       qph.list_type_code                    created_from_list_type,
       qph.rounding_factor,
       qpl.pricing_phase_id,
       qpl.price_break_type_code,
       qpl.incompatibility_grp_code,
       qpl.price_by_formula_id,
       qpl.product_precedence,
       qpl.list_line_no,
       qplatpc.attribute_level               pricing_attribute_level,
       qplatpc.attribute_type                pricing_attribute_type,
       qplatpc.context                       pricing_attribute_context,
       qplatpc.attribute                     pricing_attribute,
       qplatpc.value_from                    pricing_attr_value,
       qpprod.pricing_attr_value_from        pricing_setup_value_from,
       qpprod.pricing_attr_value_to          pricing_setup_value_to,
       qpprod.comparison_operator_code       pricing_comparison_operator,
       qpprod.pricing_attribute_datatype     pricing_datatype,
       qcdt.currency_detail_id,
       qcdt.currency_header_id,
       qcdt.selling_rounding_factor,
       qplines.currency_code                 order_currency,
       qplines.pricing_effective_date        pricing_effective_date,
       qph.currency_code                     base_currency_code
      ,QPL.BREAK_UOM_CODE /* Proration */
      ,QPL.BREAK_UOM_CONTEXT /* Proration */
      ,QPL.BREAK_UOM_ATTRIBUTE /* Proration */
FROM  --[julin/5007789]
      (SELECT /*+ dynamic_sampling(1) */ *
       FROM  qp_npreq_lines_tmp
       WHERE processed_code IN (G_STS_LHS_NOT_FOUND,G_NO_LIST_PASSED)
       AND (nvl(validated_flag,G_NO) = G_NO or nvl(QP_PREQ_PUB.G_CALL_FROM_PRICE_BOOK, G_NO) = G_YES)) qplines,
       qp_npreq_line_attrs_tmp qplatpr,
       qp_pricing_attributes qpprod ,
       qp_npreq_line_attrs_tmp qplatpc,
       qp_list_lines qpl ,
       qp_list_headers_b qph,
       qp_price_req_sources_v qprs,
       qp_currency_details qcdt
WHERE
      qph.list_header_id = qpl.list_header_id
--added for moac -- commented references to security profile
--security will be built into qp_list_headers_b
--AND ((nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND G_CURRENT_USER_OP_UNIT = QPH.orig_org_id) OR -- begin security
--         (nvl(G_SECURITY_CONTROL, 'OFF') = 'ON' AND nvl(QPH.global_flag,'Y') = 'Y') OR
--         nvl(G_SECURITY_CONTROL, 'OFF') = 'OFF' ) -- end security
AND   qpl.list_line_id   = qpprod.list_line_id
AND   (qplines.price_flag = G_YES OR
       (qplines.price_flag = G_PHASE AND p_freeze_override_flag = G_YES))
AND   qplines.list_price_override_flag in ('N', 'O') -- po integration
--AND   qph.currency_code = qplines.currency_code
AND   qph.currency_header_id = qcdt.currency_header_id
AND   qplines.currency_code = qcdt.to_currency_code
AND   qplines.pricing_effective_date between
       nvl(trunc(qcdt.start_date_active),qplines.pricing_effective_date) and
       nvl(trunc(qcdt.end_date_active),qplines.pricing_effective_date)
AND (
        (qcdt.curr_attribute_context is null
         and not exists
             (select /*+ ORDERED use_nl(qcdt1) index(pa_tmp QP_PREQ_LINE_ATTRS_TMP_N1) */ 'x'   --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp,   qp_currency_details qcdt1
               where qcdt1.curr_attribute_context IS NOT NULL
		 and qcdt1.curr_attribute_context = pa_tmp.context
                 and qcdt1.curr_attribute = pa_tmp.attribute
                 and qcdt1.curr_attribute_value = pa_tmp.value_from
                 and qcdt1.curr_attribute_type = pa_tmp.attribute_typE
                 and qcdt1.to_currency_code = qcdt.to_currency_code
                 and qcdt1.currency_header_id = qcdt.currency_header_id
                 and pa_tmp.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt1.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt1.end_date_active),qplines.pricing_effective_date)))
        OR
        (qcdt.curr_attribute_context is not null
         and qcdt.precedence =
             (select /*+ ORDERED use_nl(qcdt2) index(pa_tmp1 QP_PREQ_LINE_ATTRS_TMP_N1) */ min(qcdt2.precedence) --[julin/5139512/4744915]
	       from qp_npreq_line_attrs_tmp pa_tmp1, qp_currency_details qcdt2
               where qcdt2.curr_attribute_context IS NOT NULL
		 and qcdt2.curr_attribute_context = pa_tmp1.context
                 and qcdt2.curr_attribute = pa_tmp1.attribute
                 and qcdt2.curr_attribute_value = pa_tmp1.value_from
                 and qcdt2.curr_attribute_type = pa_tmp1.attribute_type
                 and qcdt2.to_currency_code = qcdt.to_currency_code
                 and qcdt2.currency_header_id = qcdt.currency_header_id
                 and pa_tmp1.pricing_status_code = G_STATUS_UNCHANGED
                 and pa_tmp1.line_index = qplines.line_index
                 and qplines.pricing_effective_date between
                     nvl(trunc(qcdt2.start_date_active),qplines.pricing_effective_date)
                     and nvl(trunc(qcdt2.end_date_active),qplines.pricing_effective_date)
             )))
AND   qpl.modifier_level_code = qplines.line_type_code
AND   qph.active_flag = G_YES
AND   nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)) between
      nvl(qph.start_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE))) and
      nvl(qph.end_date_active,nvl(qplines.pricing_effective_date,TRUNC(SYSDATE)))
AND   qplines.pricing_effective_date between
      nvl(TRUNC(qpl.start_date_active), qplines.pricing_effective_date)
      and nvl(TRUNC(qpl.end_date_active),qplines.pricing_effective_date)
AND   qpl.list_line_type_code in ('PLL','PMR','PBH')
AND   qpprod.pricing_phase_id = p_pricing_phase_id
AND   qpprod.qualification_ind = QP_PREQ_GRP.G_YES_PROD_PRIC_IND
AND   qpprod.product_attribute_context = qplatpr.context
AND   qpprod.product_attribute = qplatpr.attribute
AND   qpprod.product_attr_value = qplatpr.value_from
AND   qpprod.excluder_flag = G_NO
AND   qpprod.pricing_attribute_context = qplatpc.context
AND   qpprod.pricing_attribute = qplatpc.attribute
AND   (qpprod.pricing_attr_value_from = qplatpc.value_from
        or qpprod.comparison_operator_code = G_OPERATOR_BETWEEN)
AND   qplatpc.line_index = qplatpr.line_index
AND   qplatpr.line_index = qplines.line_index -- 4331801/4365538
AND   qph.source_system_code = qprs.source_system_code
AND   qplines.request_type_code   = qprs.request_type_code
AND   qplatpr.attribute_type='PRODUCT'
AND   qplatpr.pricing_status_code=G_STATUS_UNCHANGED
AND   qplatpc.attribute_type = 'PRICING'
AND   qplatpc.pricing_status_code = G_STATUS_UNCHANGED
AND (instr(QPLINES.PROCESS_STATUS,'FREEGOOD')=0) -- bug 2693700
ORDER BY 4,2;
Line: 27761

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

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

       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: 27848

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

       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: 28225

       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: 28368

       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: 28553

       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: 28730

       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: 28948

       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: 29081

       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: 29254

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

  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: 29294

  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: 29330

   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: 29379

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

END SELECT_PRICE_LIST_LINES;
Line: 29436

  |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: 29459

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

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: 29492

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: 29518

       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: 29535

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: 29578

  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: 29592

    l_a_list_header_id_tbl.delete;
Line: 29593

    l_a_line_index_tbl.delete;
Line: 29595

    l_b_list_header_id_tbl.delete;
Line: 29596

    l_b_rowid_tbl.delete;
Line: 29598

    l_c_line_index_tbl.delete;
Line: 29599

    l_c_g_line_level_tbl.delete;
Line: 29600

    l_c_G_QUALIFIER_TYPE_tbl.delete;
Line: 29601

    l_c_G_LIST_HEADER_CONTEXT_tbl.delete;
Line: 29602

    l_c_QUALIFIER_ATTRIBUTE4_tbl.delete;
Line: 29603

    l_c_list_header_id_tbl.delete;
Line: 29604

    l_c_G_VALIDATED_tbl.delete;
Line: 29605

    l_c_G_LIST_APPLIED_tbl.delete;
Line: 29606

    l_c_G_STATUS_UNCHANGED_tbl.delete;
Line: 29607

    l_c_PRICING_STATUS_TEXT_tbl.delete;
Line: 29656

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

      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: 29682

      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: 29690

      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: 29721

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

  |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: 29805

  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: 29849

   SELECT /*+ index(qplt) */  --5658579
          QPLT.LINE_DETAIL_INDEX,
          QPLT.LINE_DETAIL_TYPE_CODE,
          QPLT.LINE_INDEX,
          QPLT.CREATED_FROM_LIST_HEADER_ID,
          QPLT.CREATED_FROM_LIST_LINE_ID,
          QPLT.CREATED_FROM_LIST_LINE_TYPE,
          QPLT.CREATED_FROM_LIST_TYPE_CODE,
          QPLT.PRICE_BREAK_TYPE_CODE,
          QPLT.PRICING_GROUP_SEQUENCE,
          QPLT.OPERAND_CALCULATION_CODE,
          QPLT.OPERAND_VALUE,
          QPLT.NET_AMOUNT_FLAG, -- IT net_amount 2720717
          QPLT.AUTOMATIC_FLAG,
          QPLT.ACCRUAL_FLAG,
          QPLT.ACCRUAL_CONVERSION_RATE,
          QPLT.ESTIM_ACCRUAL_RATE,
          QPLT.RECURRING_VALUE, -- block pricing
          QPLT.MODIFIER_LEVEL_CODE,
          QPLT.GROUP_QUANTITY,
          QPLT.GROUP_AMOUNT,
          QPLT.LINE_QUANTITY, --2388011_new
          QPLT.SELECTED_VOLUME_ATTR -- 2388011_new
   FROM qp_npreq_ldets_tmp QPLT
   WHERE QPLT.LINE_INDEX = L_LINE_INDEX
   AND QPLT.PRICING_STATUS_CODE = G_STATUS_NEW
   UNION
   -- hints added as temporary R12 fix for 5573442
   SELECT /*+ ORDERED USE_NL(QPLL QPLT) INDEX(QPLL) INDEX(QPLT) */  --5658579
          QPLT.LINE_DETAIL_INDEX,
          QPLT.LINE_DETAIL_TYPE_CODE,
          QPLT.LINE_INDEX,
          QPLT.CREATED_FROM_LIST_HEADER_ID,
          QPLT.CREATED_FROM_LIST_LINE_ID,
          QPLT.CREATED_FROM_LIST_LINE_TYPE,
          QPLT.CREATED_FROM_LIST_TYPE_CODE,
          QPLT.PRICE_BREAK_TYPE_CODE,
          QPLT.PRICING_GROUP_SEQUENCE,
          QPLT.OPERAND_CALCULATION_CODE,
          QPLT.OPERAND_VALUE,
          QPLT.NET_AMOUNT_FLAG, -- IT net_amount 2720717
          QPLT.AUTOMATIC_FLAG,
          QPLT.ACCRUAL_FLAG,
	     QPLT.ACCRUAL_CONVERSION_RATE,
	     QPLT.ESTIM_ACCRUAL_RATE,
	     QPLT.RECURRING_VALUE, -- block pricing
          QPLT.MODIFIER_LEVEL_CODE,
		QPLT.GROUP_QUANTITY,
		QPLT.GROUP_AMOUNT,
          QPLT.LINE_QUANTITY, --2388011_new
          QPLT.SELECTED_VOLUME_ATTR -- 2388011_new
   FROM   qp_npreq_lines_tmp QPLL,
          qp_npreq_ldets_tmp QPLT
   WHERE  QPLL.LINE_TYPE_CODE = G_ORDER_LEVEL
   AND    QPLT.LINE_INDEX = QPLL.LINE_INDEX
   AND    QPLT.PRICING_STATUS_CODE = G_STATUS_NEW
   AND    QPLT.CREATED_FROM_LIST_TYPE_CODE <> G_CHARGES_HEADER
   ORDER BY 9; -- 9 - Pricing Group Sequence
Line: 29912

  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: 29923

   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: 29934

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

  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: 29961

  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: 29972

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

	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: 29986

 	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: 30083

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

  G_UNIT_PRICE_TBL_C.delete;
Line: 30100

  G_LINE_UNIT_PRICE_TBL_C.delete; -- shu_latest
Line: 30101

  G_ORDER_UOM_TBL_C.delete; -- bug 2693700
Line: 30102

  G_PERCENT_PRICE_TBL_C.delete;
Line: 30103

  G_ADJUSTED_UNIT_PRICE_TBL_C.delete;
Line: 30104

  G_PARENT_PRICE_TBL_C.delete;
Line: 30105

  G_PARENT_PRICED_QUANTITY_TBL_C.delete;
Line: 30106

  G_PARENT_LINE_QUANTITY_TBL_C.delete;
Line: 30107

  G_PARENT_LINE_UOM_TBL_C.delete;
Line: 30108

  G_LINE_INDEX_TBL_C.delete;
Line: 30109

  G_GSA_LINE_INDEX_TBL_C.delete;
Line: 30110

  G_EXTENDED_PRICE_TBL_C.delete; -- block pricing
Line: 30112

  G_ADJUSTMENT_AMOUNT_TBL_D.delete;
Line: 30114

  G_BENEFIT_QUANTITY_TBL_D.delete;
Line: 30115

  G_OPERAND_VALUE_TBL_D.delete;
Line: 30116

  G_QUALIFIER_VALUE_TBL_D.delete;
Line: 30117

  G_LINE_DETAIL_INDEX_TBL_D.delete;
Line: 30119

  G_LINE_QUANTITY_TBL_R.delete;
Line: 30120

  G_ADJUSTMENT_AMOUNT_TBL_R.delete;
Line: 30121

  G_LINE_DETAIL_INDEX_TBL_R.delete;
Line: 30122

  G_PARENT_PRICE_TBL_P.delete;
Line: 30204

        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: 30270

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

                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: 30341

                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: 30393

   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: 30424

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

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

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

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

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

 	 	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: 30686

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

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

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

 p_cal_req_ldets_tbl.DELETE ;
Line: 30774

 p_cal_req_rltd_tbl.DELETE;
Line: 30782

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

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

  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: 30818

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

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

   UPDATE qp_npreq_ldets_tmp
   SET ADJUSTMENT_AMOUNT = G_ADJUSTMENT_AMOUNT_TBL_D(O),
      --LINE_QUANTITY     = G_QUALIFIER_VALUE_TBL_D(O),-- 2388011, ASK RAVI, either priced_quantity,group_quantity,group_amount
      BENEFIT_QTY       = G_BENEFIT_QUANTITY_TBL_D(O),
      OPERAND_VALUE     = G_OPERAND_VALUE_TBL_D(O) --2388011_new, remove comma
      -- GROUP_QUANTITY    = G_QUALIFIER_VALUE_TBL_D(O), --2388011_new
      -- GROUP_AMOUNT      = G_QUALIFIER_VALUE_TBL_D(O)  --2388011_new
   WHERE LINE_DETAIL_INDEX =  G_LINE_DETAIL_INDEX_TBL_D(O);
Line: 30838

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

   UPDATE /*+ index(QP_NPREQ_LDETS_TMP QP_PREQ_LDETS_TMP_U1) */  qp_npreq_ldets_tmp  --5658579
   SET ADJUSTMENT_AMOUNT = G_ADJUSTMENT_AMOUNT_TBL_D(O),
      --LINE_QUANTITY     = G_QUALIFIER_VALUE_TBL_D(O), -- 2388011, ASK RAVI, either priced_quantity,group_quantity,group_amount
      BENEFIT_QTY       = G_BENEFIT_QUANTITY_TBL_D(O),
      OPERAND_VALUE     = G_OPERAND_VALUE_TBL_D(O),
      --GROUP_QUANTITY    = G_QUALIFIER_VALUE_TBL_D(O), --2388011_new
      --GROUP_AMOUNT      = G_QUALIFIER_VALUE_TBL_D(O), --2388011_new
      APPLIED_FLAG      = AUTOMATIC_FLAG
   WHERE LINE_DETAIL_INDEX =  G_LINE_DETAIL_INDEX_TBL_D(O);
Line: 30856

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

  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: 30871

  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: 30877

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

  G_UNIT_PRICE_TBL_C.delete;
Line: 30882

  G_PERCENT_PRICE_TBL_C.delete;
Line: 30883

  G_ADJUSTED_UNIT_PRICE_TBL_C.delete;
Line: 30884

  G_PARENT_PRICE_TBL_C.delete;
Line: 30885

  G_PARENT_PRICED_QUANTITY_TBL_C.delete;
Line: 30886

  G_PARENT_LINE_QUANTITY_TBL_C.delete;
Line: 30887

  G_PARENT_LINE_UOM_TBL_C.delete;
Line: 30888

  G_LINE_INDEX_TBL_C.delete;
Line: 30889

  G_GSA_LINE_INDEX_TBL_C.delete;
Line: 30890

  G_EXTENDED_PRICE_TBL_C.delete; -- block pricing
Line: 30892

  G_ADJUSTMENT_AMOUNT_TBL_D.delete;
Line: 30894

  G_BENEFIT_QUANTITY_TBL_D.delete;
Line: 30895

  G_OPERAND_VALUE_TBL_D.delete;
Line: 30896

  G_QUALIFIER_VALUE_TBL_D.delete;
Line: 30897

  G_LINE_DETAIL_INDEX_TBL_D.delete;
Line: 30899

  G_LINE_QUANTITY_TBL_R.delete;
Line: 30900

  G_ADJUSTMENT_AMOUNT_TBL_R.delete;
Line: 30901

  G_LINE_DETAIL_INDEX_TBL_R.delete;
Line: 30908

     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: 30941

  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: 30954

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

  l_attr_inserted_flag       BOOLEAN := FALSE;
Line: 30996

    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: 31016

    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: 31034

 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: 31051

    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: 31084

            IF G_INSERT_INTO_FORMULA_TMP
            THEN

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

                 l_line_index_tbl.delete;
Line: 31096

                 l_attribute_type_tbl.delete;
Line: 31097

                 l_context_tbl.delete;
Line: 31098

                 l_attribute_tbl.delete;
Line: 31099

                 l_pricing_status_code_tbl.delete;
Line: 31100

                 l_value_from_tbl.delete;
Line: 31113

                   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: 31141

                 l_line_index_tbl.delete;
Line: 31142

                 l_attribute_type_tbl.delete;
Line: 31143

                 l_context_tbl.delete;
Line: 31144

                 l_attribute_tbl.delete;
Line: 31145

                 l_pricing_status_code_tbl.delete;
Line: 31146

                 l_value_from_tbl.delete;
Line: 31157

                   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: 31205

               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: 31246

                 l_line_index_tbl.delete;
Line: 31247

                 l_attribute_type_tbl.delete;
Line: 31248

                 l_context_tbl.delete;
Line: 31249

                 l_attribute_tbl.delete;
Line: 31250

                 l_pricing_status_code_tbl.delete;
Line: 31251

                 l_value_from_tbl.delete;
Line: 31265

                   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: 31295

               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: 31331

             G_INSERT_INTO_FORMULA_TMP := FALSE;
Line: 31334

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

            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: 31349

            l_attr_inserted_flag := FALSE;
Line: 31351

            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: 31357

                    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: 31378

                l_attr_inserted_flag := TRUE;
Line: 31382

            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: 31387

                    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: 31408

                l_attr_inserted_flag := TRUE;
Line: 31480

	    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: 31490

	    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: 31501

	    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: 31511

	    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: 31522

         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: 31532

            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: 31547

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

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

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

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

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

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

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

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

	--Delete from qp_npreq_lines_tmp;
Line: 31616

	--Delete from qp_npreq_line_attrs_tmp;
Line: 31617

	--Delete From qp_npreq_ldets_tmp;
Line: 31618

	--Delete From qp_npreq_rltd_lines_tmp;
Line: 31625

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

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

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

	--Delete from qp_int_lines;
Line: 31644

	--Delete from qp_int_line_attrs;
Line: 31645

	--Delete From qp_int_ldets;
Line: 31646

	--Delete From qp_int_rltd_lines;
Line: 31650

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

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

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

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: 31713

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: 31747

  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: 31774

  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: 31797

  PROCEDURE INSERT_QUALIFIER_HIERARCHY
IS
l_count number;
Line: 31801

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

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

   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: 31899

END INSERT_QUALIFIER_HIERARCHY;
Line: 32010

  SELECT QPP.PRICING_PHASE_ID,
         QPP.LIST_TYPE_CODE,
         nvl(QPEP.USER_SEARCH_FLAG,QPEP.SEARCH_FLAG) SEARCH_FLAG,
         nvl(QPP.USER_INCOMPAT_RESOLVE_CODE,QPP.INCOMPAT_RESOLVE_CODE) INCOMPAT_RESOLVE_CODE,
         QPP.PHASE_SEQUENCE,
         nvl(QPP.USER_FREEZE_OVERRIDE_FLAG,QPP.FREEZE_OVERRIDE_FLAG) FREEZE_OVERRIDE_FLAG,
	 QPP.NAME
         --QPEP.PRICING_EVENT_CODE
  FROM   QP_PRICING_PHASES QPP, QP_EVENT_PHASES QPEP
  WHERE  ((L_MANUAL_ADJUSTMENTS_CALL_FLAG IS NULL)
          OR
          (L_MANUAL_ADJUSTMENTS_CALL_FLAG = 'N' AND
           NVL(QPP.MANUAL_MODIFIER_FLAG,'B') in ('A', 'B'))
          OR
          (L_MANUAL_ADJUSTMENTS_CALL_FLAG = 'Y' AND
           (L_RETURN_MANUAL_DISCOUNT = 'N' AND
            NVL(QPP.MANUAL_MODIFIER_FLAG,'B') in ('M', 'B'))
           OR
           (L_RETURN_MANUAL_DISCOUNT = 'Y')
          )
         )
   AND  QPEP.PRICING_EVENT_CODE IN
        (SELECT decode(rownum
          ,1 ,substr(l_event_code,1,instr(l_event_code1,',',1,1)-1)
          ,2 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
             instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
          ,3 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
              instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
          ,4 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
              instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
          ,5 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
              instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1))
          ,6 ,substr(l_event_code , instr(l_event_code1,',',1,rownum-1) + 1,
              instr(l_event_code1,',',1,rownum)-1 - instr(l_event_code1,',',1,rownum-1)))
         FROM  qp_event_phases
         WHERE rownum < 7)
  AND    trunc(sysdate) between trunc(nvl(QPEP.START_DATE_ACTIVE,sysdate))
                        and     trunc(nvl(QPEP.END_DATE_ACTIVE,sysdate))
  AND    QPP.PRICING_PHASE_ID = QPEP.PRICING_PHASE_ID
    -- if p_control_rec.get_freight_flag is 'Y' then select phases from qp_pricing_phases table freight_exists column has value 'Y'
  AND    ((nvl(p_control_rec.get_freight_flag, G_NO) = G_YES AND QPP.freight_exists = G_YES) OR
         (nvl(p_control_rec.get_freight_flag, G_NO) = G_NO))
  ORDER  BY 5,3 DESC;
Line: 32056

  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: 32192

  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: 32201

  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: 32210

  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: 32221

  SELECT REQUEST_TYPE_CODE
  FROM qp_npreq_lines_tmp
  WHERE rownum=1;
Line: 32229

SELECT REQUEST_TYPE_CODE,LINE_INDEX,LINE_TYPE_CODE,PRICE_FLAG,PRICE_LIST_HEADER_ID,ROUNDING_FACTOR
FROM qp_npreq_lines_tmp;
Line: 32233

INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,LINE_INDEX,1
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,PRICING_PHASE_ID,2
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,ASK_FOR_FLAG,3
INDX,QP_PREQ_GRP.delete_invalid_pbh_children.l_check_deleted_pbh_cur,qp_npreq_ldets_tmp_N3,CREATED_FROM_LIST_LINE_TYPE,4
*/
CURSOR l_chk_deleted_pbh_cur(p_line_index IN PLS_INTEGER,
					    p_pricing_phase_id NUMBER) IS
SELECT 'X'
FROM qp_npreq_ldets_tmp
WHERE created_from_list_line_type = G_PRICE_BREAK_TYPE
AND   line_index = p_line_index
AND   pricing_phase_id = p_pricing_phase_id
AND   pricing_status_code <> G_STATUS_NEW;
Line: 32256

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: 32277

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: 32285

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: 32295

SELECT CONTEXT,
       ATTRIBUTE,
       VALUE_FROM,
       LINE_INDEX,
       LINE_DETAIL_INDEX
FROM   qp_npreq_line_attrs_tmp;
Line: 32309

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: 32334

 SELECT MAX(LINE_DETAIL_INDEX)
 FROM   qp_npreq_ldets_tmp;
Line: 32342

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: 32352

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: 32360

SELECT 'X'
FROM   qp_limit_transactions
WHERE  price_request_code > fnd_global.local_chr(0);
Line: 32368

SELECT status
FROM   fnd_product_installations
WHERE  application_id=l_product_app_id;
Line: 32375

   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: 32392

   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: 32409

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: 32451

   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: 32515

G_TEMP_TABLE_INSERT_FLAG := nvl(p_control_rec.temp_table_insert_flag,'Y');
Line: 32524

  G_CHILD_VALUE_FROM_TBL.delete;
Line: 32525

  G_CHILD_VALUE_TO_TBL.delete;
Line: 32526

  G_PARENT_LINE_DETAIL_INDEX_TBL.delete;
Line: 32537

 G_INSERT_INTO_FORMULA_TMP := FALSE;
Line: 32538

 G_INSERT_FORMULA_STEP_VALUES := nvl(FND_PROFILE.VALUE('QP_INSERT_FORMULA_STEP_VALUES'),'Y');
Line: 32589

 IF (G_TEMP_TABLE_INSERT_FLAG = G_YES) THEN
  QP_Price_Request_Context.Set_Request_Id;
Line: 32601

 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: 32622

 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: 32633

END IF;--temp_table_insert_flag
Line: 32636

 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: 32715

IF G_TEMP_TABLE_INSERT_FLAG = G_YES THEN

 /*Truncate_Temp_Tables (l_return_status,l_status_text);
Line: 32747

     x_line_tbl(I).STATUS_CODE := QP_PREQ_GRP.G_STATUS_UPDATED;
Line: 32796

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: 32828

 SELECT 1
 INTO l_price_flag_indx
 FROM qp_npreq_lines_tmp
 WHERE PRICE_FLAG IN (G_YES,G_PHASE)
 AND   ROWNUM=1;
Line: 32835

 SELECT 1
 INTO l_price_flag_indx
 FROM qp_int_lines
 WHERE PRICE_FLAG IN (G_YES, G_PHASE)
 AND ROWNUM=1;
Line: 32848

engine_debug('Direct Temp Table Insert Price Flag Yes Only : '||l_price_flag_yes_only);
Line: 32855

 engine_debug('No Pricing. Returning, call from direct insert into temp tables by calling app');
Line: 32860

END IF;---p_control_rec.temp_table_insert_flag = G_NO
Line: 32868

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: 32904

    select line_id
    into G_ORDER_ID
    from qp_npreq_lines_tmp
    where line_type_code = QP_PREQ_GRP.G_ORDER_LEVEL;
Line: 32942

/*+------------------TO INSERT HIERARCHY RECORDS IN ATTRS_TMP  Added for TCA ----+*/

 INSERT_QUALIFIER_HIERARCHY;
Line: 32955

Update_Processing_Order(l_return_status,l_status_text);
Line: 32957

engine_debug('After calling update_procss--');
Line: 33007

            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: 33051

	    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: 33096

engine_debug ('G_TEMP_TABLE_INSERT_FLAG: '||G_TEMP_TABLE_INSERT_FLAG);
Line: 33099

  IF G_REQUEST_TYPE_CODE = 'ASO' AND G_TEMP_TABLE_INSERT_FLAG='Y' THEN
    G_ROUNDING_FLAG := 'Q';
Line: 33137

  engine_debug('update_rounding_factor...');
Line: 33141

    	 	UPDATE_ROUNDING_FACTOR (
    	 		QP_PREQ_GRP.G_MCURR_INSTALLED_USED,
    	 		l_return_status,
                	l_status_text);
Line: 33170

    G_INSERT_INTO_FORMULA_TMP := TRUE;
Line: 33188

     Update_Price_List_Information(I.freeze_override_flag, l_return_status, l_status_text);  -- fix bug 2756754
Line: 33224

     qp_debug_util.tstart('SELECT_PRICE_LIST_LINES','Select Price List Lines(Search Flag on) - SELECT_PRICE_LIST_LINES API');
Line: 33226

         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: 33231

	qp_debug_util.tstop('SELECT_PRICE_LIST_LINES');
Line: 33293

         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: 33308

         Update_Request_Line_Status(p_control_rec,'SUCCESS',i.freeze_override_flag,l_return_status,l_status_text);  --[julin/4708044]
Line: 33327

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

        FETCH l_chk_deleted_pbh_cur INTO l_dummy;
Line: 33329

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

        CLOSE l_chk_deleted_pbh_cur;*/
Line: 33349

           DELETE_LINES(J.LINE_INDEX,
                        l_return_status,
                        l_status_text);
Line: 33432

      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: 33455

         G_INSERT_INTO_FORMULA_TMP := TRUE;
Line: 33467

         Update_Distinct_Qualifier_Flag(l_return_status,l_status_text);
Line: 33501

	 qp_debug_util.tstart('SELECT_MODIFIERS','Modifier Selection - SELECT_MODIFIERS API');
Line: 33502

         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: 33507

         qp_debug_util.tstop('SELECT_MODIFIERS');
Line: 33568

     Delete_Un_Asked_For_Promotions(J.LINE_INDEX,
                                    I.pricing_phase_id,
                                    I.INCOMPAT_RESOLVE_CODE,
                                    l_return_status,
                                    l_status_text);
Line: 33585

           DELETE_LINES(J.LINE_INDEX,
                        l_return_status,
                        l_status_text,
                        l_error_status_code,
                        l_error_status_text);
Line: 33637

        OPEN l_chk_deleted_pbh_cur(J.line_index,I.pricing_phase_id);
Line: 33638

        FETCH l_chk_deleted_pbh_cur INTO l_dummy;
Line: 33639

        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: 33645

        CLOSE l_chk_deleted_pbh_cur;
Line: 33651

            DELETE_LINES(J.LINE_INDEX,
                        l_return_status,
                        l_status_text,
                        l_error_status_code,
                        l_error_status_text);
Line: 33667

           DELETE_LINES(J.LINE_INDEX,
                        l_return_status,
                        l_status_text);
Line: 33696

       UPDATE_ROUNDING_FACTOR (
         QP_PREQ_GRP.G_MCURR_INSTALLED_USED,
       l_return_status,
         l_status_text);
Line: 33769

     QP_Limit_Transactions_PVT.Delete(p_control_rec.pricing_event, l_return_status);
Line: 33785

     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: 33810

  UPDATE qp_npreq_lines_tmp
  SET UNIT_PRICE = v_order_amount,
      PRICED_QUANTITY = 1
  WHERE LINE_TYPE_CODE = 'ORDER';
Line: 33835

       QP_Limit_Transactions_PVT.Delete(p_control_rec.pricing_event, l_return_status);
Line: 33904

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: 33939

 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: 33960

	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: 33966

        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: 33968

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: 33983

 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 ';