<?xml version="1.0" encoding="UTF-8"?>
<!--
    $Author: gaoyang  
    $Date: 2013-4-17 下午02:12:40  
    $Revision: 1.0  
    $Purpose: 
-->
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm">
    <bm:operations>
        <bm:operation name="query">
            <bm:query-sql><![CDATA[select t.column_code,
       lower(t.column_name) column_name,
       t.prompt,
       t.price_list,
       hls_fin_calculator_save_pkg.calc_hls_fin_value(nvl(${@calc_session_id},-999),
       											  ${@price_list},
                                                  t.column_name,
                                                  t.percent,
                                                  t.validation_type) column_value_c,
       hls_fin_calculator_save_pkg.get_default_value_name(${@calc_session_id},t.price_list,t.column_name,t.layout_area_seq,${/session/@user_id},${/session/@session_id}) column_value,  
       t.percent,
       t.validation_type,
       t.validation_sql,
       t.layout_area_seq,
       t.input_mode,
       decode(t.input_mode, 'REQUIRED', 'TRUE', 'FALSE') required_input_mode,
       (case when ${@maintain_type}='READONLY' then
        'TRUE'
       else
        decode(t.input_mode, 'READONLY', 'TRUE', 'FALSE')
       end) readonly_input_mode,
       nvl(t.allow_format,'FALSE') allow_format,
       nvl(t.allow_decimal,'FALSE') allow_decimal,
       nvl(t.zero_fill,'FALSE') zero_fill,
       nvl(t.precision,2) precision,
       t.alignment,
       nvl(p.show_column_code,'N') show_column_code,
       decode(p.show_column_code,'N',258,298) grid_left_width,
       decode(p.show_column_code,'N',280,345) grid_margin_width,
       decode(${/parameter/@calc_type},'CLASSIC_CALCULATOR',110,60) margin_height,
       nvl(t.display_flag,'N') display_flag,
       nvl(t.enabled_flag,'N') enabled_flag,
       nvl(p.field_width,120) field_width,
       nvl(p.margin_top,3) margin_top,
       nvl(t.lov_return_vcode,'N') lov_return_vcode,
       decode(${/session/@lov_search_rule},'AUTOCOMPLETE','true','false') autocomplete,
       decode(${/session/@lov_search_rule},'FETCHSINGLE','true','false') fetchsingle,
       (case when t.validation_type in ('TEXTFIELD','TEXTAREA') then
       	decode(sys_parameter_pkg.value('SYS_GRID_SHOW_TITLE',${/session/@user_id},${/session/@role_id},${/session/@company_id}),'Y','true','false')
       else 'false'
       end) sys_grid_show_title,
       p.description price_list_name,
       p.calc_method,
       (select sv.code_value_name from sys_code_values_v sv where sv.code='HLS050.HLS_PRICE_LIST.CALC_METHOD' and sv.code_value=p.calc_method) calc_method_name,
   	   lower(t.lov_cascade_para1) lov_cascade_para1,
   	   lower(t.lov_cascade_para2) lov_cascade_para2,
   	   lower(t.lov_cascade_para3) lov_cascade_para3,
   	   t.lower_limit,
   	   t.upper_limit,
   	   (select h.source_doc_category from hls_fin_calculator_hd h where h.calc_session_id = ${@calc_session_id} )source_doc_category
  from hls_fin_calc_config t,hls_price_list p
  #WHERE_CLAUSE#
 order by t.display_order,t.column_name
]]></bm:query-sql>
        </bm:operation>
    </bm:operations>
    <bm:fields>
	    <bm:field name="source_doc_category" databaseType="VARCHAR2" datatype="java.lang.String"/>
        <bm:field name="column_code" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="COLUMN_CODE"/>
        <bm:field name="column_name" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="COLUMN_NAME"/>
        <bm:field name="prompt" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="PROMPT"/>
        <bm:field name="price_list" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="PRICE_LIST"/>
        <bm:field name="column_value" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="COLUMN_VALUE"/>
        <bm:field name="column_value_c" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="COLUMN_VALUE_C"/>
        <bm:field name="percent" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="PERCENT"/>
        <bm:field name="validation_type" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="VALIDATION_TYPE"/>
        <bm:field name="validation_sql" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="VALIDATION_SQL"/>
        <bm:field name="layout_area_seq" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="LAYOUT_AREA_SEQ"/>
        <bm:field name="input_mode" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="INPUT_MODE"/>
        <bm:field name="required_input_mode" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="REQUIRED_INPUT_MODE"/>
        <bm:field name="readonly_input_mode" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="READONLY_INPUT_MODE"/>
        <bm:field name="allow_format" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="ALLOW_FORMAT"/>
        <bm:field name="allow_decimal" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="ALLOW_DECIMAL"/>
        <bm:field name="zero_fill" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="ZERO_FILL"/>
        <bm:field name="precision" databaseType="NUMBER" datatype="java.lang.Long" physicalName="PRECISION"/>
        <bm:field name="alignment" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="ALIGNMENT"/>
        <bm:field name="show_column_code" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="SHOW_COLUMN_CODE"/>
        <bm:field name="display_flag" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="DISPLAY_FLAG"/>
        <bm:field name="field_width" databaseType="NUMBER" datatype="java.lang.Long" physicalName="FIELD_WIDTH"/>
        <bm:field name="margin_top" databaseType="NUMBER" datatype="java.lang.Long" physicalName="MARGIN_TOP"/>
        <bm:field name="lov_return_vcode" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="LOV_RETURN_VCODE"/>
        <bm:field name="grid_left_width" databaseType="NUMBER" datatype="java.lang.Long" physicalName="GRID_LEFT_WIDTH"/>
        <bm:field name="grid_margin_width" databaseType="NUMBER" datatype="java.lang.Long" physicalName="GRID_MARGIN_WIDTH"/>
        <bm:field name="margin_height" databaseType="NUMBER" datatype="java.lang.Long" physicalName="MARGIN_HEIGHT"/>
        <bm:field name="autocomplete" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="AUTOCOMPLETE"/>
        <bm:field name="fetchsingle" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="FETCHSINGLE"/>
        <bm:field name="enabled_flag" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="ENABLED_FLAG"/>
        <bm:field name="sys_grid_show_title" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="SYS_GRID_SHOW_TITLE"/>
        <bm:field name="price_list_name" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="PRICE_LIST_NAME"/>
        <bm:field name="calc_method" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="CALC_METHOD"/>
        <bm:field name="calc_method_name" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="CALC_METHOD_NAME"/>
        <bm:field name="lov_cascade_para1" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="LOV_CASCADE_PARA1"/>
        <bm:field name="lov_cascade_para2" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="LOV_CASCADE_PARA2"/>
        <bm:field name="lov_cascade_para3" databaseType="VARCHAR2" datatype="java.lang.String" physicalName="LOV_CASCADE_PARA3"/>
        <bm:field name="lower_limit" databaseType="NUMBER" datatype="java.lang.Double" physicalName="LOWER_LIMIT"/>
        <bm:field name="upper_limit" databaseType="NUMBER" datatype="java.lang.Double" physicalName="UPPER_LIMIT"/>
    </bm:fields>
    <bm:query-fields>
        <bm:query-field field="enabled_flag" queryExpression="t.enabled_flag=${@enabled_flag}"/>
        <bm:query-field field="display_flag" queryExpression="(t.display_flag=${@display_flag} or (t.display_flag=&apos;C&apos; and exists(select 1 from hls_fin_calc_config_quote q where q.calc_session_id=${@calc_session_id} and q.layout_area_seq=t.layout_area_seq and q.column_name=t.column_name and q.display_flag=&apos;Y&apos;)))"/>
    </bm:query-fields>
    <bm:data-filters>
        <bm:data-filter enforceOperations="query" expression="(t.layout_area_seq = &apos;H&apos; and t.price_list=p.price_list and t.price_list = nvl(${@price_list},(select h.price_list from hls_fin_calculator_hd h where h.calc_session_id=${@calc_session_id})))"/>
        <bm:data-filter enforceOperations="query" expression=" (t.column_name not in('BTB_INT_RATE') )"></bm:data-filter>

    </bm:data-filters>
</bm:model>
