<?xml version="1.0" encoding="UTF-8"?>
<!--
    $Author: gaoyang
    $Date: 2013-4-17 上午09:26:12
    $Revision: 1.0
    $Purpose:
-->
<a:screen xmlns:c="leaf.application.action" xmlns:s="leaf.plugin.script" xmlns:a="http://www.leaf-framework.org/application" xmlns:p="uncertain.proc" customizationEnabled="true" trace="true">
    <a:init-procedure participants="leaf.service.exception.ExceptionHandler">
        <a:model-query defaultWhereClause="d.enabled_flag=&apos;Y&apos; and nvl(d.display_flag,&apos;N&apos;)!=&apos;N&apos;" fetchAll="true" model="hls.HLS500.hls_fin_calc_config_ln" rootPath="calc_config_ln_path"/>
        <a:model-query defaultWhereClause="d.enabled_flag=&apos;Y&apos;" fetchAll="true" model="hls.HLS500.hls_fin_calc_config_ln" rootPath="calc_config_ln_all_path"/>
        <a:model-query fetchAll="true" model="hls.HLS500.hls_fin_calc_button" rootPath="calc_button_path"/>
        <a:model-query defaultWhereClause="t.enabled_flag=&apos;Y&apos; and (t.display_flag=&apos;Y&apos; or (t.display_flag=&apos;C&apos; and exists(select 1 from hls_fin_calc_config_quote q where q.calc_session_id=${/parameter/@calc_session_id} and q.layout_area_seq=&apos;H&apos; and q.column_name=t.column_name and q.display_flag=&apos;Y&apos;)))" fetchAll="true" model="hls.HLS500N.hls_fin_calc_config_hd_n" rootPath="calc_config_hd_path"/>
        <a:model-query defaultWhereClause="t.enabled_flag=&apos;Y&apos; and (t.display_flag=&apos;N&apos; or (t.display_flag=&apos;C&apos; and not exists(select 1 from hls_fin_calc_config_quote q where q.calc_session_id=${/parameter/@calc_session_id} and q.layout_area_seq=&apos;H&apos; and q.column_name=t.column_name and q.display_flag=&apos;Y&apos;)))" fetchAll="true" model="hls.HLS500N.hls_fin_calc_config_hd_n" rootPath="temp_config_hd_path"/>
        <p:set field="/parameter/@dynamic_base_table" value="HLS_FIN_CALCULATOR_LN_FORMULA"/>
        <a:model-query fetchAll="true" model="hls.HLS500N.hls_fin_calculator_common" rootPath="ln_formula_path"/>
        <p:set field="/parameter/@dynamic_base_table" value="HLS_FIN_CALCULATOR_HD_FORMULA"/>
        <a:model-query fetchAll="true" model="hls.HLS500N.hls_fin_calculator_common" rootPath="hd_formula_path"/>
        <p:set field="/parameter/@dynamic_base_table" value="null"/>
        <a:model-query defaultwhereclause="(d.layout_area_seq = &apos;H&apos;)" fetchAll="true" model="hls.HLS500N.hls_parameter_value_lov_load_n" rootPath="hd_parameter_sql_value"/>
        <a:model-query defaultwhereclause="(d.layout_area_seq = &apos;L&apos;)" fetchAll="true" model="hls.HLS500N.hls_parameter_value_lov_load_n" rootPath="ln_parameter_sql_value"/>
        <a:model-query defaultWhereClause="cc.division = hd.division and cc.contract_id=${/parameter/@document_id}" model="hls.HLS500N.check_con_record_date" rootPath="full_elec_sign"/>
        <p:exception-handles>
            <p:catch Exception="*">
                <p:action name="HandleException"/>
                <p:action name="CreateErrorResponse"/>
            </p:catch>
        </p:exception-handles>
    </a:init-procedure>
    <a:view>
        <!-- <a:link id="hls_parameter_value_lov_link" url="${/request/@context_path}/modules/hls/HLS500/hls_parameter_value_lov.lview"/> -->
        <a:link id="hls_fin_calculator_price_list" url="${/request/@context_path}/modules/hls/HLS500N/hls_fin_calculator_price_list_n.lview"/>
        <a:link id="hls_fin_calc_update" url="${/request/@context_path}/modules/hls/HLS500/hls_fin_calc_update.lsc"/>
        <a:link id="hls_fin_calculator_update" url="${/request/@context_path}/modules/hls/HLS500N/hls_fin_calculator_update_n.lview"/>
        <a:link id="hls_fin_calc_formula_update" url="${/request/@context_path}/modules/hls/HLS500/hls_fin_calc_formula_update.lview"/>
        <a:link id="hls_fin_calc_quotation_choose_id" url="${/request/@context_path}/modules/hls/HLS500/hls_fin_calc_quotation_choose.lview"/>
        <a:link id="hls_fin_calc_import_line_link_id" url="${/request/@context_path}/modules/hls/HLS500/hls_fin_calc_import_line.lview"/>
        <a:link id="hls_fin_calc_show_display_line_link_id" url="${/request/@context_path}/modules/hls/HLS500N/hls_fin_calc_show_display_line_n.lview"/>
        <a:link id="prj_check_prj_record_link_id" model="hls.HLS500N.check_prj_record" modelaction="execute"/>
        <a:link id="con_check_con_record_link_id" model="hls.HLS500N.check_con_record" modelaction="execute"/>

        <a:link id="hls_fin_calc_single_variable_calc_link_id" model="hls.HLS500.hls_fin_calc_single_variable_calc" modelaction="update"/>
        <a:link id="hls_fin_calc_single_variable_manual_link_id" model="hls.HLS500.hls_fin_calc_single_variable_calc" modelaction="execute"/>
        <a:link id="test_link_id" url="${/request/@context_path}/modules/hls/HLS500N/hls_fin_calc_save_n.lsc"/>
        <a:link id="hls_fin_calculator_print_link_id" url="${/request/@context_path}/modules/csh/CSH501/csh_payment_req_history_pdf_print.lsc"/>
        <a:link id="check_con_lease_start_date_link_id" model="hls.HLS500N.check_con_record_date" modelaction="execute"/>
        <style><![CDATA[
        .finGrid td[dataindex=percent]{
            border-right-color:#FFF;
            background-color:#FFF;
            border-bottom-color:#FFF;
        }
        .item-options{
            background:#ffffff;
        }
        .cell-editor{
            border:none;
            margin-left:3px;
        }
        .item-slideBar{
            top:10px;
            width:600px;
            height:30px;
            border:1px solid #009900;
            background-color:#CCFBD5;
            color:#009900;
            font-weight:bold;
            font-size:12px;
            text-align:center;
            line-height:20px;
            white-space :nowrap;
            position:absolute;
        }
        .item-slideBar .inner{
            width: 600px;
            max-width: 500px;
            overflow: hidden;
            text-overflow:ellipsis;
            white-space: nowrap;
        }
        ]]></style>
        <script src="${/request/@context_path}/javascripts/calculate.js" type="text/javascript"/>
        <a:screen-include screen="modules/hls/HLS500/hls_fin_calculator_dynamic.lview?calc_session_id=${/parameter/@calc_session_id}&amp;calc_type=CLASSIC_CALCULATOR&amp;document_category=${/parameter/@document_category}&amp;winId=${/parameter/@winId}"/>
        <script type="text/javascript"><![CDATA[
        var formula_column_name = '';
        var formula_column_code = '';
        var formula_prompt = '';
        var formula_row = '';
        var formula_calc_line_id = '';
        var recreate_L_formula_value = [];
        var recreate_L_formula = '${/parameter/@recreate_L_formula}' || 'N';
        var recreate_H_formula = '${/parameter/@recreate_H_formula}' || 'N';
        var global_button_code = '';
        var global_save_data_first = '';
        var global_action_after_button = '';
        var global_javascript = '';
        var quotation_update_flag = 'N';
        var errorColor = {
            ERROR: 'FFFF00'
        };
        var hd_calc_formula_orign_value = [],
            hd_calc_orign_value = [],
            ln_calc_formula_orign_value = [],
            ln_calc_orign_value = [];

        Leaf.Masker.mask(document.documentElement, '${l:HLS.LOADING}');

        function hls_hls500_3JD() {
            lock_calc_current_window('打印中');
            var calc_session_id = '${/parameter/@calc_session_id}';
            var url_l = $('hls_fin_calculator_print_link_id').getUrl() + '?document_id=' + calc_session_id + '&document_table=HLS_FIN_CALCULATOR_HD&file_path=${/parameter/@file_path}&batch_flag=Y&source_type=COMMON';
            window.open(href = url_l, target = "_self");
            unlock_calc_current_window();
        }

        function hls_hls500_save(nextStep, source_procedure) {
            var temp_head_records = $('hls_fin_calculator_hd_ds').getAll();
            var is_constru_unit = '${/parameter/@is_constru_unit}' || 'N';
            var  H1,H54;
            for (var i = 0; i < temp_head_records.length; i++) {
                if (temp_head_records[i].get('column_code') == 'H1') {
                    H1 = temp_head_records[i].get('column_value') || 0;

                } else if (temp_head_records[i].get('column_code') == 'H54') {
                    H54 = temp_head_records[i].get('column_value') || 0;
                    H54=minus(H54,4.75);
                }
            }
            // if(H1<2){
            //     Leaf.showMessage('${l:PROMPT}', '系统暂时不支持还款期数小于2期的租金计划');
            //     unlock_calc_current_window();
            //     return false;
            // }
            if(H54<0){
                Leaf.showMessage('${l:PROMPT}', '利率最低值不能低于4.75');
                unlock_calc_current_window();
                return false;
            }
            //  lock_calc_current_window('${l:HLS.SAVING}');
            if (!$('hls_fin_calculator_hd_ds').validate() || !$('hls_fin_calculator_ln_ds').validate()) {
                unlock_calc_current_window();
                return;
            }
            if('${/parameter/@document_category}'=='PROJECT'){
                Leaf.request({
                    url: $('prj_check_prj_record_link_id').getUrl(),
                    para: {
                        'project_id': '${/parameter/@document_id}'
                    },
                    success: function(res) {
                        var secondary_lease = res.result.secondary_lease;
                        var payment_deduction = res.result.payment_deduction;
                        var price_list = res.result.price_list;
                        var down_payment_rate_new=res.result.down_payment_rate_new;
                        if((price_list=='HL_PRICR_E'||price_list=='HL_PRICR_TEST'||price_list=='HL_PRICR_NTEST'||price_list=='HL_PRICR_EN') && secondary_lease=='NO') {
                            //比例=(H16+H97)/(H99+H102-H16)
                            var H16, H97, H99, H102;
                            var temp_head_records = $('hls_fin_calculator_hd_ds').getAll();
                            for (var i = 0; i < temp_head_records.length; i++) {
                                if (temp_head_records[i].get('column_code') == 'H16') {
                                    H16 = temp_head_records[i].get('column_value') || 0
                                } else if (temp_head_records[i].get('column_code') == 'H97') {
                                    H97 = temp_head_records[i].get('column_value') || 0
                                } else if (temp_head_records[i].get('column_code') == 'H99') {
                                    H99 = temp_head_records[i].get('column_value') || 0
                                } else if (temp_head_records[i].get('column_code') == 'H102') {
                                    H102 = temp_head_records[i].get('column_value') || 0
                                }
                            }
                            var aa = H16 + H97;
                            var bb = H99 + H102 - H16;
                            var cc = div((H16 + H97), (H99 + H102 - H16));
                            //  alert(div((H16+H97), (H99+H102-H16)).toFixed(2) * 1);
                            var show = down_payment_rate_new * 100;
                            // if ((div((H16 + H97), (H99 + H102 - H16)).toFixed(2) * 1) < down_payment_rate_new) {
                            //    unlock_calc_current_window();
                            //    Leaf.showMessage('${l:PROMPT}', '首付款比例+首付款保证金比例之和不能低于' + down_payment_rate_new * 100 + '%');
                            //    return false;
                            //}
                            if ((div((H16 + H97), (H99 + H102 - H16)).toFixed(2) * 1) < down_payment_rate_new  && is_constru_unit != 'Y') {

                                if ('${/parameter/@division}'==91){
                                    Leaf.SideBar.show({
                                        // msg:'首付款比例+首付款保证金比例之和不能低于' + down_payment_rate_new * 100 + '%</br>租赁期为一年及以内的，利率为6.75%，大于一年的7.3%</br>利率最低值不能低于4.75%',
                                        msg:'首付款比例+首付款保证金比例之和不能低于' + down_payment_rate_new * 100 + '%',
                                        duration: 10000
                                    });

                                }
                            }
                        }

                        var temp_head_records = $('hls_fin_calculator_hd_ds').getAll();
                        for (var i = 0;i < temp_head_records.length;i++) {
                            if (!$('temp_hd_attribute_ds').find('column_code', temp_head_records[i].get('column_code'))) {
                                $('temp_hd_attribute_ds').create(temp_head_records[i].data);
                            }
                        }
                        var all_records = $('temp_hd_attribute_ds').getAll();
                        var headRecord = $('hls_fin_cal_save_hd_ds').getAt(0);
                        headRecord.isNew = false;
                        headRecord.dirty = true;
                        create_record_column(all_records, headRecord);

                        if(price_list=='HL_PRICR_E' ||price_list=='HL_PRICR_TEST'||price_list=='HL_PRICR_NTEST'||price_list=='HL_PRICR_EN'){
                            if(payment_deduction!='TRADE_IN' && payment_deduction!='TRI_AGREEMENT' ){
                                var record = $('hls_fin_calculator_hd_ds').getAll();
                                for (var i = 0;i < temp_head_records.length;i++) {
                                    if(record[i].get('column_code')=='H109') {
                                        record[i].set('column_value',0);
                                        record[i].set('column_value_c',0);
                                        var a= document.getElementById('hls_fin_calculator_hd_grid_id_column_value_'+record[i].id);
                                        document.getElementById('hls_fin_calculator_hd_grid_id_column_value_'+record[i].id).innerHTML=0;
                                        document.getElementById('hls_fin_calculator_hd_grid_id_column_value_'+record[i].id).title=0;
                                    }
                                }
                            }else{
                                var temp_head_records = $('hls_fin_calculator_hd_ds').getAll();
                                for (var i = 0;i < temp_head_records.length;i++) {
                                    var H16;
                                    if(temp_head_records[i].get('column_code')=='H16'){
                                        H16=temp_head_records[i].get('column_value');
                                    }
                                    if(temp_head_records[i].get('column_code')=='H109') {
                                        temp_head_records[i].set('column_value',H16);
                                        //  temp_head_records[i].set('column_value_c',0);
                                    }
                                }
                            }
                        }

                        if (price_list == 'HL_PRICR_E' || price_list == 'HL_PRICR_TEST' || price_list == 'HL_PRICR_NTEST' || price_list == 'HL_PRICR_EN') {
                            if (payment_deduction != 'TRADE_IN' && payment_deduction != 'TRI_AGREEMENT') {
                                var record = $('hls_fin_calculator_hd_ds').getAll();
                                for (var i = 0; i < temp_head_records.length; i++) {
                                    if (record[i].get('column_code') == 'H109') {
                                        record[i].set('column_value', 0);
                                        record[i].set('column_value_c', 0);
                                        var a = document.getElementById('hls_fin_calculator_hd_grid_id_column_value_' + record[i].id);
                                        document.getElementById('hls_fin_calculator_hd_grid_id_column_value_' + record[i].id).innerHTML = 0;
                                        document.getElementById('hls_fin_calculator_hd_grid_id_column_value_' + record[i].id).title = 0;
                                    }
                                }
                            } else {
                                var temp_head_records = $('hls_fin_calculator_hd_ds').getAll();
                                for (var i = 0; i < temp_head_records.length; i++) {
                                    var H16;
                                    if (temp_head_records[i].get('column_code') == 'H16') {
                                        H16 = temp_head_records[i].get('column_value');
                                    }
                                    if (temp_head_records[i].get('column_code') == 'H109') {
                                        temp_head_records[i].set('column_value', H16);
                                        //  temp_head_records[i].set('column_value_c',0);
                                    }
                                }
                            }
                        }

                        function hls_fin_cal_save_hd_submitsuccess(ds, res) {
                            if (typeof (nextStep) == 'function') {
                                nextStep(source_procedure);
                            } else {
                                function on_ln_formula_load(ds) {
                                    Leaf.SideBar.enable = true;
                                    success_sidebar_show();
                                    unlock_calc_current_window();
                                    $('ln_formula_ds').un('load', on_ln_formula_load);
                                }

                                $('ln_formula_ds').on('load', on_ln_formula_load);
                                $('ln_formula_ds').query();
                            }
                        }

                        $('hls_fin_cal_save_hd_ds').on('submitsuccess', hls_fin_cal_save_hd_submitsuccess);
                        Leaf.SideBar.enable = false;
                        $('hls_fin_cal_save_hd_ds').submit();

                    },
                    failure: function () {
                        unlock_calc_current_window('${l:HLS.SAVING}');

                    },
                    error: function () {
                        unlock_calc_current_window('${l:HLS.SAVING}');

                    },
                    scope: this
                });

            } else {
                var temp_head_records = $('hls_fin_calculator_hd_ds').getAll();
                for (var i = 0; i < temp_head_records.length; i++) {
                    if (!$('temp_hd_attribute_ds').find('column_code', temp_head_records[i].get('column_code'))) {
                        $('temp_hd_attribute_ds').create(temp_head_records[i].data);
                    }
                }
                var all_records = $('temp_hd_attribute_ds').getAll();
                var headRecord = $('hls_fin_cal_save_hd_ds').getAt(0);
                headRecord.isNew = false;
                headRecord.dirty = true;
                create_record_column(all_records, headRecord);

                function hls_fin_cal_save_hd_submitsuccess(ds, res) {
                    if (typeof (nextStep) == 'function') {
                        nextStep(source_procedure);
                    } else {
                        function on_ln_formula_load(ds) {
                            Leaf.SideBar.enable = true;
                            success_sidebar_show();
                            unlock_calc_current_window();
                            $('ln_formula_ds').un('load', on_ln_formula_load);
                        }

                        $('ln_formula_ds').on('load', on_ln_formula_load);
                        $('ln_formula_ds').query();
                    }
                }

                $('hls_fin_cal_save_hd_ds').on('submitsuccess', hls_fin_cal_save_hd_submitsuccess);
                Leaf.SideBar.enable = false;
                $('hls_fin_cal_save_hd_ds').submit();
            }


        }

        function on_hls_fin_cal_save_hd_submitfailed(ds, res) {
            unlock_calc_current_window();
        }


        function hls_hls500_calc() {
            lock_calc_current_window('${l:HLS.CALCULATING}');

            hls_hls500_save(calc_execute, 'CALC');


        }

        function hls_hls500_re_calc() {
            if('${/parameter/@layout_code}'=='CCR_BEFORE_SIGN'){
                Leaf.showMessage('${l:PROMPT}', '签约前变更暂时不支持试算');
                return;
            }else{
                lock_calc_current_window('${l:HLS.CALCULATING}');
                hls_hls500_save_new(calc_execute, 'RE_CALC');
            }
        }

        function open_after_save_execute() {
            if ('${/parameter/@global_flag}' == 'Y') {
                var url = $('hls_fin_calculator_update').getUrl();
                var id_num = '${/parameter/@id_num}' * 1 + 1;
                var winId = 'global_hls_fin_calculator_update_id' + id_num;
                current_win_close();
                unlock_calc_current_window();
                new Leaf.Window({
                    id: winId,
                    params: {
                        layout_code: '${/parameter/@layout_code}',
                        calc_session_id: '${/parameter/@calc_session_id}',
                        document_id: '${/parameter/@document_id}',
                        quotation_id: '${/parameter/@quotation_id}',
                        document_category: '${/parameter/@document_category}',
                        business_type:'${/parameter/@business_type}',
                        calc_type: '${/parameter/@calc_type}',
                        dsId: '${/parameter/@dsId}',
                        dsId1: '${/parameter/@dsId1}',
                        winId: winId,
                        winId1: '${/parameter/@winId1}',
                        global_flag: 'Y',
                        id_num: id_num,
                        recreate_H_formula: recreate_H_formula,
                        recreate_L_formula: recreate_L_formula,
                        division:'${/parameter/@division}',
                        is_constru_unit: '${/parameter/@is_constru_unit}'
                    },
                    url: url,
                    title: '${l:HLS.FIN_CALCULATOR}',
                    fullScreen: true
                });
            } else {
                window.location.href = $('hls_fin_calculator_update').getUrl() + '?calc_session_id=' + '${/parameter/@calc_session_id}';
            }
        }

        function calc_execute(source_procedure) {

            var final_recreate_H_formula, final_recreate_L_formula;
            if (source_procedure == 'RE_CALC') {
                final_recreate_H_formula = 'Y';
                final_recreate_L_formula = 'Y';
            } else {
                final_recreate_H_formula = recreate_H_formula;
                final_recreate_L_formula = recreate_L_formula;
            }
            Leaf.request({
                url: '${/request/@context_path}/autocrud/hls.HLS500.hls_fin_calculator_calc/update',
                para: {
                    layout_code: '${/parameter/@layout_code}',
                    calc_session_id: '${/parameter/@calc_session_id}',
                    document_id: '${/parameter/@document_id}',
                    document_category: '${/parameter/@document_category}',
                    recreate_H_formula: final_recreate_H_formula,
                    recreate_L_formula: final_recreate_L_formula,
                    quotation_id: '${/parameter/@quotation_id}'
                },
                success: function (res) {
                    on_calc_success_query('${/parameter/@dsId}', '${/parameter/@document_category}');
                    get_warning_message(res.result.warning_message);
                    if('${/parameter/@layout_code}'!='CCR_BEFORE_SIGN'){
                        recreate_H_formula = 'N';
                        recreate_L_formula = 'N';
                    }

                    open_after_save_execute();
                },
                failure: function () {
                    unlock_calc_current_window();
                },
                error: function () {
                    unlock_calc_current_window();
                },
                scope: this
            });
        }


        function hls_formatMoney(v, p) {
            return Leaf.formatNumber(v, p);
        }

        function hls_formatMoney_zero_fill(v, p) {
            return Leaf.formatNumber(v, p).replace(/0*$/g, '').replace(/\.$/, '');
        }

        function is_false_return(value) {
            if (isNaN(value) && Ext.isDefined(value)) {
                if (value.substring(0, 1) == '#') {
                    return false;
                }

            } else {
                return true;
            }
        }

        function setGridCellStyle(record, name, cls) {
            var id = 'hls_fin_calculator_hd_grid_id_' + name + '_' + record.id,
                intervalId = setInterval(function () {
                    var div = Ext.get(id);
                    if (div) {
                        if (!div.getBorderWidth('t r b l')) {
                            div = div.parent();
                        }
                        clearInterval(intervalId);
                        div.dom.className = '';
                        div.addClass(cls);
                    }
                }, 10);
        }

        function seedetail_column_hd(value, record, name) {
            var field = record.getField(name);
            if (field.isRequired()) {
                setGridCellStyle(record, name, 'item-notBlank');
            } else if (!field.isRequired() && !field.isReadOnly()) {
                setGridCellStyle(record, name, 'item-options');
            }
            if (is_false_return(value) == false) {
                return "<div style='background-color:#" + errorColor['ERROR'] + "'>" + value + "</div>";
            }
            if (record.get('validation_type') == 'NUMBERFIELD' && (value || value === 0)) {
                if (record.get('allow_format') == 'TRUE') {
                    if (record.get('precision')) {
                        if (record.get('zero_fill') == 'TRUE') {
                            return hls_formatMoney(value, record.get('precision'));
                        } else {
                            return hls_formatMoney_zero_fill(value, record.get('precision'));
                        }
                    } else {
                        return hls_formatMoney(value);
                    }
                } else {
                    if (record.get('precision') && record.get('allow_decimal') == 'TRUE') {
                        if (record.get('zero_fill') == 'TRUE') {
                            return parseFloat(value).toFixed(record.get('precision'));
                        } else {
                            return parseFloat(value).toFixed(record.get('precision')).replace(/0*$/g, '').replace(/\.$/, '');
                        }
                    } else {
                        if (record.get('allow_decimal') == 'TRUE') {
                            return value;
                        } else {
                            return parseFloat(parseFloat(value).toFixed(0));
                        }
                    }
                }
            } else if (record.get('validation_type') == 'DATEPICKER') {
                return Leaf.formatDate(value);
            } else {
                return value;
            }
        }

        function wrap_render(value, record, name) {
            var editor_record = $('line_attribute_ds').find('column_name', name);
            if (editor_record.get('validation_type') == 'NUMBERFIELD' && editor_record.get('input_mode') != 'READONLY' && name != 'times' && editor_record.get('sys_grid_col_underline') == 'Y' && !Ext.isEmpty(value)) {
                return '<u>' + seedetail_column_ln(value, record, name) + '</u>';
            } else {
                return seedetail_column_ln(value, record, name);
            }
        }

        function seedetail_column_ln(value, record, name) {
            if (is_false_return(value) == false) {
                return "<div style='background-color:#" + errorColor['ERROR'] + "'>" + value + "</div>";
            }
            var editor_record = $('line_attribute_ds').find('column_name', name);
            if (editor_record.get('validation_type') == 'NUMBERFIELD' && (value || value === 0)) {
                if (editor_record.get('allow_format') == 'TRUE') {
                    if (editor_record.get('precision')) {
                        if (editor_record.get('zero_fill') == 'TRUE') {
                            return hls_formatMoney(value, editor_record.get('precision'));
                        } else {
                            return hls_formatMoney_zero_fill(value, editor_record.get('precision'));
                        }
                    } else {
                        return hls_formatMoney(value);
                    }
                } else {
                    if (editor_record.get('precision') && editor_record.get('allow_decimal') == 'TRUE') {
                        if (editor_record.get('zero_fill') == 'TRUE') {
                            return parseFloat(value).toFixed(editor_record.get('precision'));
                        } else {
                            return parseFloat(value).toFixed(editor_record.get('precision')).replace(/0*$/g, '').replace(/\.$/, '');
                        }
                    } else {
                        if (editor_record.get('allow_decimal') == 'TRUE') {
                            return value;
                        } else {
                            return parseFloat(parseFloat(value).toFixed(0));
                        }
                    }
                }
            } else if (editor_record.get('validation_type') == 'DATEPICKER') {
                return Leaf.formatDate(value);
            } else {
                return value;
            }
        }

        function parameter_function(record, name) {
            var field = record.getField(name),
                ds = $('hls_fin_calculator_hd_ds'),
                input_mode = record.get('input_mode');
            set_field_input_mode(record, field, name, input_mode);
            special_editor_function(ds, record, name);
            if (record.get('alignment')) {
                Ext.each($('hls_fin_calculator_hd_grid_id').columns, function (c) {
                    if (c.name == name) {
                        c.align = record.get('alignment');
                    }
                });
            }
            var temp_head_records = $('hls_fin_calculator_hd_ds').getAll();
            if('${/parameter/@division}'== '70'){
                if (record.get('column_code') == 'H97') {
                    console.log(name);
                    set_field_input_mode(record, field, name, 'READONLY');
                }
            }
            if (record.get('validation_type') == 'NUMBERFIELD') {
                if (record.get('allow_decimal') == 'TRUE') {
                    field.setPropertity('allowdecimals', true);
                } else {
                    field.setPropertity('allowdecimals', false);
                }
                if (record.get('precision') || record.get('precision') == 0) {
                    field.setPropertity('decimalprecision', record.get('precision'));
                }
                if (record.get('zero_fill') == 'TRUE') {
                    field.setPropertity('allowpad', true);
                } else {
                    field.setPropertity('allowpad', false);
                }
                set_field_limit(record, field);
                if (field.get('readonly')) {
                    return '';
                } else {
                    return 'hls500_hd_numberfield_id';
                }
            } else if (record.get('validation_type') == 'LOV') {
                var documentMapping;
                if (record.get('lov_return_vcode') == 'Y') {
                    documentMapping = [{
                        from: 'value_code',
                        to: name
                    }];
                } else {
                    documentMapping = [{
                        from: 'value_name',
                        to: name
                    }, {
                        from: 'value_code',
                        to: name + '_c'
                    }];
                }
                var hd_parameter_sql_value_record = $('hd_parameter_sql_value_ds').find('column_code', record.get('column_code'));
                field.setLovPara('validation_sql', hd_parameter_sql_value_record.get('validation_sql'));
                field.setTitle(record.get('prompt'));
                field.setMapping(documentMapping);
                field.setLovModel('hls.HLS500.hls_parameters_lov');
                if (field.get('readonly')) {
                    return '';
                } else {
                    return 'hls500_hd_lov_id';
                }
            } else if (record.get('validation_type') == 'COMBOBOX') {
                var combobox_ds = record.get('layout_area_seq') + '_' + record.get('column_name') + '_combobox_ds';
                combobox_ds = $(combobox_ds);
                field.setOptions(combobox_ds);
                combobox_ds.setQueryParameter('validation_sql', record.get('validation_sql'));
                var comboBoxMapping;
                field.setPropertity('valuefield', 'value_code');
                if (record.get('lov_return_vcode') == 'Y') {
                    field.setPropertity('displayfield', 'value_code');
                    comboBoxMapping = [{
                        from: 'value_code',
                        to: name
                    }];
                } else {
                    field.setPropertity('displayfield', 'value_name');
                    comboBoxMapping = [{
                        from: 'value_code',
                        to: name + '_c'
                    }];
                }
                field.setMapping(comboBoxMapping);
                if (field.get('readonly')) {
                    return '';
                } else {
                    return 'hls500_hd_combobox_id';
                }
            } else if (record.get('validation_type') == 'TEXTFIELD') {
                if (field.get('readonly')) {
                    return '';
                } else {
                    return 'hls500_hd_textfield_id';
                }
            } else if (record.get('validation_type') == 'DATEPICKER') {
                return 'hls500_hd_datepicker_id';
            } else if (record.get('validation_type') == 'CHECKBOX') {
                field.setPropertity('checkedvalue', 'Y');
                field.setPropertity('uncheckedvalue', 'N');
                if (field.get('readonly')) {
                    return '';
                } else {
                    return 'hls500_hd_checkbox_id';
                }
            } else if (record.get('validation_type') == 'BOOLEAN_CHECKBOX') {
                field.setPropertity('checkedvalue', '1');
                field.setPropertity('uncheckedvalue', '0');
                if (field.get('readonly')) {
                    return '';
                } else {
                    return 'hls500_hd_checkbox_id';
                }
            } else {
                return '';
            }
        }

        function do_hls500_column_name(record, name) {
            var editor_record = $('line_attribute_ds').find('column_name', name),
                field = record.getField(name),
                input_mode = editor_record.get('input_mode');
            set_field_input_mode(record, field, name, input_mode);
            if('${/parameter/@layout_code}'=='CCR_BEFORE_SIGN'){
                if(name='principal_eq_pymt_adj'){
                    set_field_input_mode(record, field, name, 'READONLY');
                }
            }

            if (editor_record.get('validation_type') == 'NUMBERFIELD') {
                if (editor_record.get('allow_decimal') == 'TRUE') {
                    field.setPropertity('allowdecimals', true);
                } else {
                    field.setPropertity('allowdecimals', false);
                }
                if (editor_record.get('precision') || editor_record.get('precision') == 0) {
                    field.setPropertity('decimalprecision', editor_record.get('precision'));
                }
                if (editor_record.get('zero_fill') == 'TRUE') {
                    field.setPropertity('allowpad', true);
                } else {
                    field.setPropertity('allowpad', false);
                }
                set_field_limit(editor_record, field);
                if (field.get('readonly')) {
                    return '';
                } else {
                    if (name == 'times' && (!record.isNew)) {
                        return '';
                    }
                    return 'hls500_ln_numberfield_id';
                }
            } else if (editor_record.get('validation_type') == 'LOV') {
                var documentMapping = [{
                    from: 'value_code',
                    to: name
                }];
                var ln_parameter_sql_value_record = $('ln_parameter_sql_value_ds').find('column_code', editor_record.get('column_code'));
                field.setLovPara('validation_sql', ln_parameter_sql_value_record.get('validation_sql'));
                field.setTitle(editor_record.get('prompt'));
                field.setMapping(documentMapping);
                field.setLovModel('hls.HLS500.hls_parameters_lov');
                if (field.get('readonly')) {
                    return '';
                } else {
                    return 'hls500_ln_lov_id';
                }
            } else if (editor_record.get('validation_type') == 'TEXTFIELD') {
                if (field.get('readonly')) {
                    return '';
                } else {
                    return 'hls500_ln_textfield_id';
                }
            } else if (editor_record.get('validation_type') == 'DATEPICKER') {
                return 'hls500_ln_datepicker_id';
            } else if (editor_record.get('validation_type') == 'CHECKBOX') {
                field.setPropertity('checkedvalue', 'Y');
                field.setPropertity('uncheckedvalue', 'N');
                if (field.get('readonly')) {
                    return '';
                } else {
                    return 'hls500_ln_checkbox_id';
                }
            } else if (editor_record.get('validation_type') == 'BOOLEAN_CHECKBOX') {
                field.setPropertity('checkedvalue', '1');
                field.setPropertity('uncheckedvalue', '0');
                if (field.get('readonly')) {
                    return '';
                } else {
                    return 'hls500_ln_checkbox_id';
                }
            } else {
                return '';
            }
        }

        function hls_hls500_add() {
            $('hls_fin_calculator_ln_grid_id').showEditorByRecord($('hls_fin_calculator_ln_ds').create(0));
        }

        function hls_hls500_return() {
            if ('${/parameter/@global_flag}' == 'Y') {
                current_win_close();
            } else {
                var url = $('hls_fin_calculator_price_list').getUrl();
                window.location.href = url;
            }
        }

        function do_hls500_line_load(ds) {
            var lineRecords = ds.getAll();
            var attribute_records = $('line_attribute_ds').getAll();
            if (!lineRecords) {
                return;
            }
            if ('${/model/calc_config_hd_path/record/@show_column_code}' == 'Y') {
                for (var i = 0; i < lineRecords.length; i++) {
                    var ln_formula_record = $('ln_formula_ds').find('calc_line_id', lineRecords[i].get('calc_line_id'));
                    for (var j = 0; j < attribute_records.length; j++) {
                        var column_name = attribute_records[j].get('column_name');
                        var tooltip_ln_formula = escapeHtml(appendBr(ln_formula_record.get(column_name), 60));
                        lineRecords[i].getField(column_name).setPropertity('tooltip', tooltip_ln_formula);
                    }
                }
            }
        }

        function do_hls500_line_update(ds, record, name, value, old_value) {
            if (quotation_update_flag == 'N') {
                quotation_update_flag = 'Y';
            }
            if (Ext.isEmpty(ln_calc_orign_value[name])) {
                ln_calc_orign_value[name] = old_value;
            }
            if (name == 'principal_eq_pymt_adj' && value) {
                if (value * 1 < 0) {
                    Leaf.showMessage('${l:PROMPT}', '调整租金不能小于零！');
                    return false;
                }
            }
            var formula_record = $('ln_formula_ds').find('calc_line_id', record.get('calc_line_id'));
            if (formula_record) {
                if (Ext.isEmpty(ln_calc_formula_orign_value[name])) {
                    ln_calc_formula_orign_value[name] = formula_record.get(name);
                }
                if (value === ln_calc_orign_value[name]) {
                    formula_record.set(name, ln_calc_formula_orign_value[name]);
                } else {
                    formula_record.set(name, value);
                }
            }
            onLineupdate_setEmpty(ds, record, name, value, old_value);
        }

        var count=0;
        var error_count=0;
        function do_hls500_head_update(ds, record, name, value, old_value) {

            // if (record.get('column_code') == 'H54' ) {
            //     var sum=record.get('column_value')-4.75
            //     if(sum<0){
            //         Leaf.showMessage('${l:PROMPT}', '利率最低值不能低于4.75');
            //         return false;
            //     }
            // }
            // if (record.get('column_code') == 'H1' ) {
            //     if(value<2){
            //         Leaf.showMessage('${l:PROMPT}', '系统暂时不支持还款期数小于2期的租金计划');
            //         return false;
            //     }
            // }
            if (record.get('lov_return_vcode') == 'N' && (record.get('validation_type') == 'COMBOBOX' || record.get('validation_type') == 'LOV')) {
                value = record.get('column_value_c');
            } else {
                if (name == 'column_value') {
                    record.set('column_value_c', value);
                }
            }
            var column_name = record.get('column_name');
            if (Ext.isEmpty(hd_calc_orign_value[column_name])) {
                hd_calc_orign_value[column_name] = old_value;
            }
            if (quotation_update_flag == 'N') {
                quotation_update_flag = 'Y';
            }
            var formula_record = $('hd_formula_ds').getAt(0);
            if (Ext.isEmpty(hd_calc_formula_orign_value[column_name])) {
                hd_calc_formula_orign_value[column_name] = formula_record.get(column_name);
            }
            if (value == hd_calc_orign_value[column_name]) {
                formula_record.set(column_name, hd_calc_formula_orign_value[column_name]);
            } else {
                if (record.get('percent') == '%' && !Ext.isEmpty(value)) {
                    formula_record.set(column_name, div(value, 100));
                } else {
                    formula_record.set(column_name, value);
                }
            }
            if (column_name == 'lease_times' || column_name == 'ccr_outstanding_times') {
                if (!recreate_L_formula_value[column_name]) {
                    recreate_L_formula_value[column_name] = old_value;
                }
                if (value != recreate_L_formula_value[column_name]) {
                    recreate_L_formula = 'Y';
                } else {
                    recreate_L_formula = 'N';
                }
            }
            //非全电签约电子合同起租日校验
            if('${/parameter/@layout_code}'=='CCR_BEFORE_SIGN'){
                if('${/model/full_elec_sign/record/@full_elec_sign}'!='Y' && '${/model/full_elec_sign/record/@sign_type}'=='ELE_SIGN'){
                    if (record.get('column_code') == 'H2'){
                        if(!Ext.isEmpty(record.get('column_value'))){
                            Leaf.request({
                                url: $('check_con_lease_start_date_link_id').getUrl(),
                                para: {
                                    'contract_id': '${/parameter/@document_id}',
                                    'lease_start_date':record.get('column_value')
                                },
                                success: function(res) {
                                    error_count = res.result.error_count;
                                },
                                failure: function () {
                                    return false;
                                },
                                error: function () {
                                    return false;
                                },
                                scope: this,
                                sync: true
                            });
                            //判断起租日
                            if (error_count > 0 && count == 0) {
                                count = count + 1;
                                $L.showErrorMessage('提示', '变更后起租日期不符合要求，请修改！');
                                record.set('column_value','');
                                return false;
                            }else if (error_count > 0 && count != 0) {
                                count = 0;
                                record.set('column_value','');
                                return false;
                            }
                        }

                    }
                }
            }


            onEditorupdate(ds, record, name, value, old_value);
        }

        function hls_hls500_formula_change() {
            if (!formula_column_name) {
                Leaf.showMessage('${l:HLS.PROMPT}', '${l:HLS500.CHANGE_FORMULA_FIELD}');
                return;
            }
            if (!formula_calc_line_id) {
                Leaf.showConfirm('${l:HLS.PROMPT}', '${l:HLS500.CHANGE_HD_FIELD}' + formula_prompt, function () {
                    openWindow();
                }, function () {

                }, null, null);
            } else {
                Leaf.request({
                    url: '${/request/@context_path}/autocrud/hls.HLS500.hls_fin_calc_config_ln/query',
                    para: {
                        calc_session_id: '${/parameter/@calc_session_id}',
                        column_name: formula_column_name
                    },
                    success: function (res) {
                        formula_column_code = res.result.record.column_code;
                        Leaf.showConfirm('${l:HLS.PROMPT}', '${l:HLS500.CHANGE_LN_FIELD}' + formula_row + '${l:HLS500.LN_FIELD}' + formula_prompt, function () {
                            openWindow();
                        }, function () {

                        }, null, null);
                    },
                    scope: this
                });
            }

        }

        function hls500_hd_cellcick(grid, row, name, record) {
            formula_column_name = record.get('column_name');
            formula_column_code = record.get('column_code');
            formula_prompt = record.get('prompt');
            formula_calc_line_id = '';
            formula_row = row;
        }

        function hls500_ln_cellcick(grid, row, name, record) {
            var ln_formula_record = $('line_attribute_ds').find('column_name', name);
            formula_column_name = name;
            formula_column_code = '';
            formula_prompt = ln_formula_record.get('prompt');
            formula_calc_line_id = record.get('calc_line_id');
            formula_row = row;
        }

        function openWindow() {
            var url = $('hls_fin_calc_formula_update').getUrl();
            new Leaf.Window({
                id: 'hd_formula_update_winid',
                url: url,
                params: {
                    calc_session_id: '${/parameter/@calc_session_id}',
                    document_id: '${/parameter/@document_id}',
                    document_category: '${/parameter/@document_category}',
                    column_name: formula_column_name,
                    column_code: formula_column_code,
                    prompt: formula_prompt,
                    calc_line_id: formula_calc_line_id,
                    winid: 'hd_formula_update_winid'
                },
                title: '${l:HLS500.FORMULA_UPDATE}',
                height: 300,
                width: 400
            });
        }

        function escapeHtml(str) {
            if (Ext.isEmpty(str) || !Ext.isString(str)) {
                return str;
            }
            return $L.escapeHtml(str).replace(/&lt;br\/&gt;/gm, '<br/>');
        }

        function appendBr(s, max) {
            if (s) {
                for (var i = max || 10; i < s.length; i += max + 5) {
                    s = s.substr(0, i) + '<br/>' + s.substr(i);
                }
                return s;
            } else {
                return '';
            }
        }

        function on_hd_load_last_deal(ds, each_record) {
            var value;
            if (each_record.get('lov_return_vcode') == 'N' && (each_record.get('validation_type') == 'COMBOBOX' || each_record.get('validation_type') == 'LOV')) {
                value = each_record.get('column_value_c');
            } else {
                value = each_record.get('column_value');
            }
            onEditor_load_fire(ds, each_record, each_record.get('column_name'), value, null);
        }

        function onEditorHdload(ds) {
            var headRecords = ds.getAll();
            if ('${/parameter/@document_category}' == 'CONTRACT') {
                Leaf.request({
                    url: $('con_check_con_record_link_id').getUrl(),
                    para: {
                        'contract_id': '${/parameter/@document_id}'
                    },
                    success: function (res) {
                        var contract_status = res.result.contract_status;
                        var sign_contract_status = res.result.sign_contract_status;
                        if (sign_contract_status == 'SIGN' || sign_contract_status == 'SIGNING' || contract_status == 'NEW' || contract_status == 'INCEPT_RETURN') {
                            //签约前合同变更才放开部分字段，其他维持原合同起租时租赁日调整逻辑
                            /*if('${/parameter/@layout_code}'!='CCR_BEFORE_SIGN'){*/
                            for (var i = 0; i < headRecords.length; i++) {
                                var column_name = headRecords[i].get('column_name');
                                if (column_name != "lease_start_date" && column_name != "contract_inception_date") {
                                    headRecords[i].set('input_mode', 'READONLY');
                                    headRecords[i].set('readonly_input_mode', 'TRUE');
                                    headRecords[i].getField('column_value').setReadOnly(true);
                                    headRecords[i].getField('column_value_c').setReadOnly(true);
                                }
                            }
                            /* }else{
                                 for (var i = 0; i < headRecords.length; i++) {
                                     var column_name = headRecords[i].get('column_name');
                                     if (column_name != "lease_start_date" && column_name != "contract_inception_date"&&column_name != "other_fee"&&column_name != "lease_times"&&column_name != "int_rate_display"
                                         &&column_name != "down_payment"&&column_name != "third_party_deposit"&&column_name != "balloon_ratio") {
                                         headRecords[i].set('input_mode', 'READONLY');
                                         headRecords[i].set('readonly_input_mode', 'TRUE');
                                         headRecords[i].getField('column_value').setReadOnly(true);
                                         headRecords[i].getField('column_value_c').setReadOnly(true);
                                     }
                                 }
                             }*/




                        } else {
                            for (var i = 0; i < headRecords.length; i++) {
                                headRecords[i].set('input_mode', 'READONLY');
                                headRecords[i].set('readonly_input_mode', 'TRUE');
                                headRecords[i].getField('column_value').setReadOnly(true);
                                headRecords[i].getField('column_value_c').setReadOnly(true);

                            }
                        }
                    },
                    failure: function () {
                        unlock_calc_current_window('${l:HLS.SAVING}');

                    },
                    error: function () {
                        unlock_calc_current_window('${l:HLS.SAVING}');

                    },
                    scope: this
                });


            }
            if ('${/parameter/@document_category}' == 'PROJECT'|| '${/parameter/@layout_code}' == 'CCR_BEFORE_SIGN') {
                Leaf.request({
                    url: $('prj_check_prj_record_link_id').getUrl(),
                    para: {
                        'project_id': '${/parameter/@document_id}'
                    },
                    success: function (res) {
                        var detention = res.result.detention;
                        for (var i = 0; i < headRecords.length; i++) {
                            var column_name = headRecords[i].get('column_name');
                            if (column_name == "residual_value") {
                                headRecords[i].set('column_value', detention);
                                headRecords[i].set('column_value_c', detention);
                            }
                            if (column_name =='business_type') {
                                headRecords[i].set('input_mode', 'READONLY');
                                headRecords[i].set('readonly_input_mode', 'TRUE');
                                headRecords[i].getField('column_value').setReadOnly(true);
                                headRecords[i].getField('column_value_c').setReadOnly(true);
                            }
                        }


                    },
                    failure: function () {
                        unlock_calc_current_window('${l:HLS.SAVING}');

                    },
                    error: function () {
                        unlock_calc_current_window('${l:HLS.SAVING}');

                    },
                    scope: this,
                    sync: true
                });


            }
            if (headRecords.length > 0 && headRecords[0].get('show_column_code') == 'N') {
                $('hls_fin_calculator_hd_grid_id').hideColumn('column_code');
                $('hls_fin_calculator_export_grid_id').hideColumn('column_code');
            } else {
                var hd_formula_record = $('hd_formula_ds').getAt(0);
                for (var i = 0; i < headRecords.length; i++) {
                    var column_name = headRecords[i].get('column_name');
                    var tooltip_hd_formula = escapeHtml(appendBr(hd_formula_record.get(column_name), 60));
                    headRecords[i].getField('column_code').setPropertity('tooltip', tooltip_hd_formula);
                    headRecords[i].getField('prompt').setPropertity('tooltip', tooltip_hd_formula);
                    headRecords[i].getField('column_value').setPropertity('tooltip', tooltip_hd_formula);
                }
            }
            Ext.each(ds.getAll(), function (each_record) {
                each_record.isNew = true;
                Ext.iterate(ds.fields, function (key) {
                    key == 'column_value' && parameter_function(each_record, key);
                })
            });
            Ext.each(ds.getAll(), function (each_record) {
                on_hd_load_last_deal(ds, each_record);
            });
            Ext.each($('temp_hd_attribute_ds').getAll(), function (each_record) {
                on_hd_load_last_deal($('temp_hd_attribute_ds'), each_record);
            });
            Leaf.Masker.unmask(document.documentElement);
        }

        function hls500_define_button(btn) {
            lock_calc_current_window();
            global_button_code = btn.id.substring(7);
            var button_record = $('calc_button_ds').find('button_code', global_button_code);
            global_save_data_first = button_record.get('save_data_first');
            global_action_after_button = button_record.get('action_after_button');
            global_javascript = button_record.get('javascript');
            if (Ext.isDefined(global_javascript)) {
                if (global_save_data_first == 'Y') {
                    hls_hls500_save(hls500_define_button_js);
                } else {
                    hls500_define_button_js();
                }
            } else {
                if (global_save_data_first == 'Y') {
                    hls_hls500_save(hls500_define_button_execute);
                } else {
                    hls500_define_button_execute();
                }
            }
        }

        function hls500_action_after_button() {
            if (global_action_after_button == 'EXIT') {
                hls_hls500_return();
            } else if (global_action_after_button == 'QUERY') {
                open_after_save_execute();
            }
        }

        function hls500_define_button_js() {
            // if (window.execScript) {
            // window.execScript(global_javascript);
            // } else {
            eval(global_javascript);
            // }
            unlock_calc_current_window();
            hls500_action_after_button();
        }

        function hls500_define_button_execute() {
            Leaf.request({
                url: '${/request/@context_path}/autocrud/hls.HLS500.hls_fin_calc_user_define_btn/update',
                para: {
                    calc_session_id: '${/parameter/@calc_session_id}',
                    button_code: global_button_code,
                    document_id: '${/parameter/@document_id}',
                    document_category: '${/parameter/@document_category}'
                },
                success: function (res) {
                    parent.Leaf.SideBar.show({
                        html: '<div style="background-color:#ccfbd5;position:absolute;padding:3px;border:1px solid #009900">' + res.result.return_value + '</div>',
                        duration: 5000
                    });
                    unlock_calc_current_window();
                    hls500_action_after_button();
                },
                failure: function () {
                    unlock_calc_current_window();
                },
                error: function () {
                    unlock_calc_current_window();
                },
                scope: this
            });
        }

        function hls500_hd_process(datas) {
            for (var i = 0; i < datas.length; i++) {
                var temp = datas[i];
                if (temp.data['validation_type'] == 'NUMBERFIELD') {
                    temp.data['column_value'] = isNaN(temp.data['column_value']) == true ? temp.data['column_value'] : parseFloat(parseFloat(temp.data['column_value']).toFixed(temp.data['precision']));
                }
            }
            return datas;
        }

        function hls500_hd_formula_process(datas) {
            for (var i = 0; i < datas.length; i++) {
                var temp = datas[i];
                if (Ext.isDefined(temp.data)) {
                    temp = temp.data;
                }
                for (var name in temp) {
                    var temp_record = $('hd_attribute_ds').find('column_name', name);
                    if (temp_record) {
                        if (temp_record.get('validation_type') == 'NUMBERFIELD') {
                            temp[name] = isNaN(temp[name]) == true ? temp[name] : parseFloat(parseFloat(temp[name]).toFixed(temp_record.get('precision')));
                        }
                    }
                }
            }
            return datas;
        }

        function hls500_ln_process(datas) {
            for (var i = 0; i < datas.length; i++) {
                var temp = datas[i];
                for (var name in temp.data) {
                    var temp_record = $('line_attribute_ds').find('column_name', name);
                    if (temp_record) {
                        if (temp_record.get('validation_type') == 'NUMBERFIELD') {
                            temp.data[name] = isNaN(temp.data[name]) == true ? temp.data[name] : parseFloat(parseFloat(temp.data[name]).toFixed(temp_record.get('precision')));
                        }
                    }
                }
            }
            return datas;
        }

        function hls500_ln_formula_process(datas) {
            for (var i = 0; i < datas.length; i++) {
                var temp = datas[i];
                if (Ext.isDefined(temp.data)) {
                    temp = temp.data;
                }
                for (var name in temp) {
                    var temp_record = $('line_attribute_ds').find('column_name', name);
                    if (temp_record) {
                        if (temp_record.get('validation_type') == 'NUMBERFIELD') {
                            temp[name] = isNaN(temp[name]) == true ? temp[name] : parseFloat(parseFloat(temp[name]).toFixed(temp_record.get('precision')));
                        }
                    }
                }
            }
            return datas;
        }

        function hls_hls500_delete() {
            $('hls_hls500_delete_id').disable();
            var records = $('hls_fin_calculator_ln_ds').getSelected();
            if (!records.length) {
                Leaf.showMessage('${l:HLS.PROMPT}', '${l:HLS.SELECT_RECORD}');
                $('hls_hls500_delete_id').enable();
                return;
            }
            var saveData = [];
            for (var i = 0; i < records.length; i++) {
                records[i].set('_status', 'delete');
                records[i].set('document_id', '${/parameter/@document_id}');
                records[i].set('document_category', '${/parameter/@document_category}');
                saveData.push(records[i].data);
            }
            Leaf.request({
                url: '${/request/@context_path}/autocrud/hls.HLS500.hls_fin_calc_delete_ln/batch_update',
                para: saveData,
                success: function () {
                    success_sidebar_show();
                    $('hls_fin_calculator_ln_grid_id').clear();
                    $('hls_hls500_delete_id').enable();
                },
                failure: function () {
                    $('hls_hls500_delete_id').enable();
                },
                error: function () {
                    $('hls_hls500_delete_id').enable();
                },
                scope: this
            });
        }

        function hls_hls500_quotation() {
            if (quotation_update_flag == 'Y') {
                Leaf.showMessage('${l:PROMPT}', '${l:HLS500.QUOTATION_CALC_FIRST}');
                return;
            }
            if ('${/parameter/@global_flag}' == 'Y') {
                lock_calc_current_window('${l:HLS.SAVING}');
                Leaf.request({
                    url: '${/request/@context_path}/autocrud/hls.HLS500.hls_quotation_save/insert',
                    para: {
                        calc_session_id: '${/parameter/@calc_session_id}',
                        document_id: '${/parameter/@document_id}',
                        document_category: '${/parameter/@document_category}'
                    },
                    success: function () {
                        $('${/parameter/@dsId}').query();
                        if ('${/parameter/@quotation_id}') {
                            var win = new Leaf.Window({
                                id: 'hls_fin_calc_quotation_choose_winid',
                                params: {
                                    quotation_id: '${/parameter/@quotation_id}',
                                    document_id: '${/parameter/@document_id}',
                                    document_category: '${/parameter/@document_category}',
                                    dsId: '${/parameter/@dsId}',
                                    dsId1: '${/parameter/@dsId1}',
                                    winId: '${/parameter/@winId}',
                                    winId1: '${/parameter/@winId1}'
                                },
                                url: $('hls_fin_calc_quotation_choose_id').getUrl(),
                                title: '${l:PROMPT}',
                                height: 200,
                                width: 400
                            });
                            win.on('close', function () {
                                unlock_calc_current_window();
                            });
                        } else {
                            Leaf.SideBar.show({
                                msg: '${l:HLS.SUBMIT_SUCCESS}',
                                duration: 2000
                            });
                        }
                        unlock_calc_current_window();
                    },
                    failure: function () {
                        unlock_calc_current_window();
                    },
                    error: function () {
                        unlock_calc_current_window();
                    },
                    scope: this
                });
            }
        }

        function hls_hls500_export() {
            $('hls_fin_calculator_export_ds').query();

            function on_hls_fin_calculator_export_load() {
                $('hls_fin_calculator_export_grid_id')._export();
                $('hls_fin_calculator_export_ds').un('load', on_hls_fin_calculator_export_load);
            }

            $('hls_fin_calculator_export_ds').on('load', on_hls_fin_calculator_export_load);
        }

        function hd_grid_rowrenderer() {
            return 'background-color:#f3f3f3';
        }

        function do_hls500_line_remove(ds, record, index) {
            var formula_record = $('ln_formula_ds').find('calc_line_id', record.get('calc_line_id'));
            $('ln_formula_ds').remove(formula_record);
        }

        function hls_hls500_restructure() {
            lock_calc_current_window('${l:HLS.CALCULATING}');
            var win = Leaf.showConfirm('${l:PROMPT}', '${l:HLS.SAVE_FIRST}', function () {
                hls_hls500_save(hls_hls500_restructure_execute);
            }, function () {
                hls_hls500_restructure_execute()
            }, null, null);
            win.on('close', function () {
                unlock_calc_current_window();
            });
        }

        function hls_hls500_restructure_execute() {
            Leaf.request({
                url: '${/request/@context_path}/autocrud/hls.HLS500.hls_fin_calc_structure_execute/update',
                para: {
                    calc_session_id: '${/parameter/@calc_session_id}'
                },
                success: function () {
                    open_after_save_execute();
                },
                failure: function () {
                    unlock_calc_current_window();
                },
                error: function () {
                    unlock_calc_current_window();
                },
                scope: this
            });
        }

        Leaf.onReady(function () {
            Ext.fly('hls_fin_calculator_export_grid_id_wrap').setStyle({
                display: 'none'
            });
            if ('${/parameter/@document_category}' == 'PROJECT' || '${/parameter/@document_category}' == 'CONTRACT') {
                Ext.fly('hls_hls500_user_button3_col_id').setStyle({
                    display: 'none'
                });
            }
        });

        function hls_hls500_import() {
            $('hls_hls500_import_id').disable();
            hls_hls500_save(hls_hls500_import_detail);
        }

        function hls_hls500_import_detail() {
            $('hls_hls500_import_id').disable();
            unlock_calc_current_window();
            var win = new Leaf.Window({
                id: 'upload_handle_window',
                params: {
                    calc_session_id: '${/parameter/@calc_session_id}',
                    parent_winId: '${/parameter/@winId}',
                    winId: 'upload_handle_window',
                    document_id: '${/parameter/@document_id}',
                    document_category: '${/parameter/@document_category}',
                    calc_type: '${/parameter/@calc_type}',
                    global_flag: '${/parameter/@global_flag}'
                },
                url: $('hls_fin_calc_import_line_link_id').getUrl(),
                title: '${l:HLS.IMPORT}',
                width: 420,
                height: 275
            });
            win.on('close', function () {
                $('hls_hls500_import_id').enable();
            });
        }

        function hls_hls500_show_col(btn) {
            $('hls_hls500_show_col_id').disable();
            var win = new Leaf.Window({
                id: 'show_col_window_id',
                params: {
                    calc_session_id: '${/parameter/@calc_session_id}',
                    calc_grid_id: 'hls_fin_calculator_ln_grid_id',
                    calc_export_grid_id: 'hls_fin_calculator_export_grid_id',
                    winid: 'show_col_window_id'
                },
                url: $('hls_fin_calc_show_display_line_link_id').getUrl(),
                title: btn.el.dom['innerText'],
                width: 530,
                height: 500
            });
            win.on('close', function () {
                $('hls_hls500_show_col_id').enable();
            });
        }

        function sum_name_in(name) {
            var config = ['rental', 'principal', 'interest', 'vat_interest', 'ln_user_col_n03', 'btb_repayment', 'btb_principal', 'btb_interest', 'ln_user_col_n05', 'btb_vat_interest', 'btb_fee', 'btb_fee_pv', 'ln_user_col_n06', 'other_payment', 'other_payment2'];
            for (var i = 0; i < config.length; i++) {
                if (config[i] == name) {
                    return true;
                }
            }
            return false;
        }

        function sum_zero_time_in(name) {
            var config = ['ln_user_col_n03', 'ln_user_col_n06', 'other_payment', 'other_payment2'];
            for (var i = 0; i < config.length; i++) {
                if (config[i] == name) {
                    return true;
                }
            }
            return false;
        }

        function calc_sumfunction(datas, name) {
            if (sum_name_in(name)) {
                var sum = 0;
                for (var i = 0; i < datas.length; i++) {
                    var r = datas[i];
                    var d = r.get(name);
                    if (r.get('times') === 0 && !sum_zero_time_in(name)) {
                        d = 0;
                    }
                    var n = parseFloat(d);
                    if (!isNaN(n)) {
                        sum = plus(sum, n);
                    }
                }
                var total = (typeof (sum) == 'undefined' ? '' : parseFloat(sum));
                return '<font>' + Leaf.formatNumber(total) + '</font>';
            } else {
                return '';
            }
        }

        //add by syj 单变量求解
        //均等计算
        function hls_hls500_user_button1() {
            flag = 'Y';
            //lock_calc_current_window();
            Leaf.request({
                url: $('hls_fin_calc_single_variable_calc_link_id').getUrl(),
                para: {
                    calc_session_id: '${/parameter/@calc_session_id}'
                },
                success: function (res) {
                    if ('${/parameter/@document_category}' == 'PROJECT') {
                        $('${/parameter/@layout_code}_F_QUOTATION_N_prj_quotation_ds').query();
                        $('${/parameter/@layout_code}_G_CASHFLOW_NS_prj_quotation_ds').query();
                    } else if ('${/parameter/@document_category}' == 'CONTRACT') {

                        if(  $('${/parameter/@layout_code}_G_CASHFLOW_1_con_contract_cashflow_ds')){
                            $('${/parameter/@layout_code}_G_CASHFLOW_1_con_contract_cashflow_ds').query();

                        }
                    }
                    // success_sidebar_show();
                    get_warning_message(res.result.msg);
                    open_after_save_execute();
                },
                failure: function () {
                    unlock_calc_current_window();
                },
                error: function () {
                    unlock_calc_current_window();
                },
                scope: this
            });
        }

        //均等计算合并计算按钮一起
        function hls_hls500_JD() {


            hls_hls500_save_new(calc_execute_JD_new, 'CALC');

        }

        //不均等
        function hls_hls500_NJD() {
            var temp_head_records = $('hls_fin_calculator_ln_ds').getAll();
            //一、报价器加校验：1.如果用户把所有租金都手填，则报校验“禁止手填所有期数租金！”；
            // 2.如果用户手动修改租金以后，只有最后一期租金大于零，则报校验“目前不支持只有一期租金的报价！”
            var count = temp_head_records.length - 1;
            var calc_temp = parseFloat(0);
            var before_calc_count = parseFloat(0);
            var last_calc_count = parseFloat(0);
            var zero_calc_count = parseFloat(0);
            var null_calc_count = parseFloat(0);
            var last_null_calc_count = parseFloat(0);
            var last_zero_calc_count = parseFloat(0);
            for (var i = 0; i < temp_head_records.length; i++) {
                if (temp_head_records[i].get('times') > 0) {

                    if (temp_head_records[i].get('principal_eq_pymt_adj') !== '' && temp_head_records[i].get('principal_eq_pymt_adj') >= 0) {
                        calc_temp = plus(calc_temp, parseFloat(1));

                    }
                    if (temp_head_records[i].get('principal_eq_pymt_adj') !== '' && temp_head_records[i].get('principal_eq_pymt_adj') === 0) {
                        before_calc_count = plus(before_calc_count, parseFloat(1));

                    }
                    if (temp_head_records[i].get('principal_eq_pymt_adj') !== '' && temp_head_records[i].get('principal_eq_pymt_adj') === 0) {
                        zero_calc_count = plus(zero_calc_count, parseFloat(1));

                    }
                    if (typeof (temp_head_records[i].get('principal_eq_pymt_adj')) == 'undefined' || temp_head_records[i].get('principal_eq_pymt_adj') === '') {
                        null_calc_count = plus(null_calc_count, parseFloat(1));

                    }
                }
                if (temp_head_records[i].get('times') === count) {

                    if (!temp_head_records[i].get('principal_eq_pymt_adj') || temp_head_records[i].get('principal_eq_pymt_adj') === '') {
                        last_calc_count = plus(last_calc_count, parseFloat(1));
                    }
                    if (typeof (temp_head_records[i].get('principal_eq_pymt_adj')) == 'undefined' || temp_head_records[i].get('principal_eq_pymt_adj') === '') {
                        last_null_calc_count = plus(last_null_calc_count, parseFloat(1));
                    }
                    if (temp_head_records[i].get('principal_eq_pymt_adj') !== '' && temp_head_records[i].get('principal_eq_pymt_adj') === 0) {
                        last_zero_calc_count = plus(last_zero_calc_count, parseFloat(1));
                    }
                }
            }
            if (calc_temp == count) {
                Leaf.showMessage('${l:PROMPT}', '请保证一期以上的的调整租金为空！');
                return false;
            }
            //  if(last_null_calc_count==1&&zero_calc_count==count-1){
            //      Leaf.showMessage('${l:PROMPT}', '系统暂不支持所有租金集中在最后一期支付！');
            //      return false;
            //  }
            // if(null_calc_count==1&&zero_calc_count==count-1){
            //     Leaf.showMessage('${l:PROMPT}', '目前不支持只有一期租金的报价！');
            //     return false;
            // }
            if (last_zero_calc_count == 1) {
                Leaf.showMessage('${l:PROMPT}', '系统不支持最后一期租金为0的情况！');
                return false;
            }


            hls_hls500_save_new(calc_execute_NJD_new, 'CALC');


        }

        function hls_hls500_save_new(nextStep, source_procedure) {
            var temp_head_records = $('hls_fin_calculator_hd_ds').getAll();
            var H1, H54, H159, H16, H12,H99,H102,H15,H44;
            var is_constru_unit = '${/parameter/@is_constru_unit}' || 'N';
            for (var i = 0; i < temp_head_records.length; i++) {
                if (temp_head_records[i].get('column_code') == 'H1') {
                    H1 = temp_head_records[i].get('column_value') || 0;

                } else if (temp_head_records[i].get('column_code') == 'H54') {
                    H54 = temp_head_records[i].get('column_value') || 0;
                    H54 = minus(H54, 4.75);
                } else if (temp_head_records[i].get('column_code') == 'H159') {
                    H159 = temp_head_records[i].get('column_value_c');
                } else if (temp_head_records[i].get('column_code') == 'H16') {
                    H16 = temp_head_records[i].get('column_value') || 0;
                } else if (temp_head_records[i].get('column_code') == 'H99') {
                    H99 = temp_head_records[i].get('column_value') || 0;
                }
                else if (temp_head_records[i].get('column_code') == 'H102') {
                    H102 = temp_head_records[i].get('column_value') || 0;
                }
                else if (temp_head_records[i].get('column_code') == 'H15') {
                    H15 = temp_head_records[i].get('column_value') || 0;
                }
                else if (temp_head_records[i].get('column_code') == 'H44') {
                    H44 = temp_head_records[i].get('column_value') || 0;
                }
            }
            // if ('${/parameter/@division}'==91 && (((H1<=12 && plus(H54,4.75) != 6.75) || (H1 > 12 && plus(H54,4.75) != 7.3))||H54 < 0)){
            //     Leaf.SideBar.show({
            //         msg:"租赁期为一年及以内的，利率为6.75%，大于一年的7.3%</br>利率最低值不能低于4.75%",
            //         duration: 5000
            //     });
            // }
            // if(H1<2){
            //     Leaf.showMessage('${l:PROMPT}', '系统暂时不支持还款期数小于2期的租金计划');
            //     return false;
            // }
            //if (H1 > 70) {
            //    Leaf.showMessage('${l:PROMPT}', '还款期数应小于或等于70期');
            //    unlock_calc_current_window();
            //    return false;
            //}
            if ('${/parameter/@division}'==93) {
                var dowm_money = mul(div(H16,H99),100)
                if(dowm_money<15){
                    Leaf.SideBar.show({
                        msg:'当前首付款比例低于15%！',
                        duration: 10000
                    })
                }
                if(H1 > 36){
                    Leaf.SideBar.show({
                        msg:'租赁期限超过36期！',
                        duration: 10000
                    })
                }
            }
            if (H54 < 0) {
                Leaf.showMessage('${l:PROMPT}', '利率最低值不能低于4.75');
                unlock_calc_current_window();
                return false;
            }
            if('${/parameter/@division}'==92){
                var dowm_payment = div(H16, plus(H99,H102)).toFixed(2) * 100;
                if(dowm_payment < 30){
                    Leaf.showMessage('${l:PROMPT}', '首付比例不低于30%');
                    unlock_calc_current_window();
                    return false;
                }
                if(H44!=100){
                    Leaf.showMessage('${l:PROMPT}', '留购金需要为100元');
                    unlock_calc_current_window();
                    return false;
                }
            }

            if (H1 == 1 && (H159 == 'HL_PRICR_NTEST' || H159 == 'HL_PRICR_TEST')) {
                Leaf.showMessage('${l:PROMPT}', '均等还款期数应大于1期');
                unlock_calc_current_window();
                return false;
            }
            if ('${/parameter/@document_category}' == 'PROJECT' && '${/parameter/@business_type}'=='LEASEBACK' && is_constru_unit != 'Y') {
                var dowm_payment = div(H16, plus(H99,H102)).toFixed(2) * 100;
                if (dowm_payment < 15) {
                    if ('${/parameter/@division}'!=91&&'${/parameter/@division}'!=93) {
                        Leaf.showMessage('${l:PROMPT}', '回租首付款比例不低于15%');
                        unlock_calc_current_window();
                        return false;
                    }else{
                        Leaf.SideBar.show({
                            //msg: "回租首付款比例不低于15%</br>租赁期为一年及以内的，利率为6.75%，大于一年的7.3%</br>利率最低值不能低于4.75%",
                            msg: "回租首付款比例不低于15%",
                            duration: 5000
                        });
                    }
                }
            }

            lock_calc_current_window('${l:HLS.CALCULATING}');
            if (!$('hls_fin_calculator_hd_ds').validate() || !$('hls_fin_calculator_ln_ds').validate()) {
                unlock_calc_current_window();
                return;
            }
            if ('${/parameter/@document_category}' == 'PROJECT'||'${/parameter/@document_category}' == 'CONTRACT') {
                Leaf.request({
                    url: $('prj_check_prj_record_link_id').getUrl(),
                    para: {
                        'project_id': '${/parameter/@document_id}'
                    },
                    success: function (res) {
                        var secondary_lease = res.result.secondary_lease;
                        var payment_deduction = res.result.payment_deduction;
                        var price_list = res.result.price_list;
                        var down_payment_rate_new = res.result.down_payment_rate_new;
                        if ('${/parameter/@document_category}' == 'PROJECT' && '${/parameter/@business_type}' == 'LEASE') {
                            if ((price_list == 'HL_PRICR_E' || price_list == 'HL_PRICR_TEST' || price_list == 'HL_PRICR_NTEST' || price_list == 'HL_PRICR_EN') && secondary_lease == 'NO') {
                                //比例=(H16+H97)/(H99+H102-H16)
                                var H16, H97, H99, H102;
                                var temp_head_records = $('hls_fin_calculator_hd_ds').getAll();
                                for (var i = 0; i < temp_head_records.length; i++) {
                                    if (temp_head_records[i].get('column_code') == 'H16') {
                                        H16 = temp_head_records[i].get('column_value') || 0
                                    } else if (temp_head_records[i].get('column_code') == 'H97') {
                                        H97 = temp_head_records[i].get('column_value') || 0
                                    } else if (temp_head_records[i].get('column_code') == 'H99') {
                                        H99 = temp_head_records[i].get('column_value') || 0
                                    } else if (temp_head_records[i].get('column_code') == 'H102') {
                                        H102 = temp_head_records[i].get('column_value') || 0
                                    }
                                }
                                var aa = H16 + H97;
                                var bb = H99 + H102 - H16;
                                var cc = div((H16 + H97), (H99 + H102 - H16));
                                //  alert(div((H16+H97), (H99+H102-H16)).toFixed(2) * 1);
                                var show = down_payment_rate_new * 100;
                                //if ((div((H16 + H97), (H99 + H102 - H16)).toFixed(2) * 1) < down_payment_rate_new) {
                                //    unlock_calc_current_window();
                                //    Leaf.showMessage('${l:PROMPT}', '首付款比例+首付款保证金比例之和不能低于' + down_payment_rate_new * 100 + '%');
                                //    return false;
                                //}
                                if ((div((H16 + H97), (H99 + H102 - H16)).toFixed(2) * 1) < down_payment_rate_new && is_constru_unit != 'Y') {
                                    if ('${/parameter/@division}'==91) {
                                        Leaf.SideBar.show({
                                            // msg:'首付款比例+首付款保证金比例之和不能低于' + down_payment_rate_new * 100 + '%</br>租赁期为一年及以内的，利率为6.75%，大于一年的7.3%</br>利率最低值不能低于4.75%',
                                            msg:'首付款比例+首付款保证金比例之和不能低于' + down_payment_rate_new * 100 + '%',
                                            duration: 10000
                                        });

                                    }
                                }
                            }
                        }

                        var temp_head_records = $('hls_fin_calculator_hd_ds').getAll();
                        for (var i = 0; i < temp_head_records.length; i++) {
                            if (!$('temp_hd_attribute_ds').find('column_code', temp_head_records[i].get('column_code'))) {
                                $('temp_hd_attribute_ds').create(temp_head_records[i].data);
                            }
                            if('${/parameter/@business_type}' == 'LEASE'){
                                if (payment_deduction != 'TRADE_IN' && payment_deduction != 'TRI_AGREEMENT') {
                                    if (temp_head_records[i].get('column_code') == 'H109') {
                                        temp_head_records[i].set('column_value', 0);
                                        //  temp_head_records[i].set('column_value_c',0);
                                    }
                                    // var record = $('hls_fin_calculator_hd_ds').getAll();
                                    // for (var i = 0; i < temp_head_records.length; i++) {
                                    //     if (record[i].get('column_code') == 'H109') {
                                    //         record[i].set('column_value', 0);
                                    //         record[i].set('column_value_c', 0);
                                    //         var a = document.getElementById('hls_fin_calculator_hd_grid_id_column_value_' + record[i].id);
                                    //         document.getElementById('hls_fin_calculator_hd_grid_id_column_value_' + record[i].id).innerHTML = 0;
                                    //         document.getElementById('hls_fin_calculator_hd_grid_id_column_value_' + record[i].id).title = 0;
                                    //     }
                                    // }
                                } else {
                                    var H16;
                                    if (temp_head_records[i].get('column_code') == 'H16') {
                                        H16 = temp_head_records[i].get('column_value');
                                    }
                                    if (temp_head_records[i].get('column_code') == 'H109') {
                                        temp_head_records[i].set('column_value', H16);
                                        //  temp_head_records[i].set('column_value_c',0);
                                    }
                                }
                            }else if( '${/parameter/@business_type}' == 'LEASEBACK'){
                                if (payment_deduction != 'DOWN_PAYMENT_DEDUCTION') {
                                    if (temp_head_records[i].get('column_code') == 'H109') {
                                        temp_head_records[i].set('column_value', 0);
                                        temp_head_records[i].set('column_value_c',0);
                                    }
                                    // var record = $('hls_fin_calculator_hd_ds').getAll();
                                    // for (var i = 0; i < temp_head_records.length; i++) {
                                    //     if (record[i].get('column_code') == 'H109') {
                                    //         record[i].set('column_value', 0);
                                    //         record[i].set('column_value_c', 0);
                                    //         var a = document.getElementById('hls_fin_calculator_hd_grid_id_column_value_' + record[i].id);
                                    //         document.getElementById('hls_fin_calculator_hd_grid_id_column_value_' + record[i].id).innerHTML = 0;
                                    //         document.getElementById('hls_fin_calculator_hd_grid_id_column_value_' + record[i].id).title = 0;
                                    //     }
                                    // }
                                } else {
                                    var H16;
                                    if (temp_head_records[i].get('column_code') == 'H16') {
                                        H16 = temp_head_records[i].get('column_value');
                                    }
                                    if (temp_head_records[i].get('column_code') == 'H109') {
                                        temp_head_records[i].set('column_value', H16);
                                        //  temp_head_records[i].set('column_value_c',0);
                                    }
                                }

                            }
                        }
                        var all_records = $('temp_hd_attribute_ds').getAll();
                        var headRecord = $('hls_fin_cal_save_hd_ds').getAt(0);
                        headRecord.isNew = false;
                        headRecord.dirty = true;
                        create_record_column(all_records, headRecord);

                        // if (price_list == 'HL_PRICR_E' || price_list == 'HL_PRICR_TEST' || price_list == 'HL_PRICR_NTEST' || price_list == 'HL_PRICR_EN') {
                        //     if (payment_deduction != 'TRADE_IN' && payment_deduction != 'TRI_AGREEMENT') {
                        //         var record = $('hls_fin_calculator_hd_ds').getAll();
                        //         for (var i = 0; i < temp_head_records.length; i++) {
                        //             if (record[i].get('column_code') == 'H109') {
                        //                 record[i].set('column_value', 0);
                        //                 record[i].set('column_value_c', 0);
                        //                 var a = document.getElementById('hls_fin_calculator_hd_grid_id_column_value_' + record[i].id);
                        //                 document.getElementById('hls_fin_calculator_hd_grid_id_column_value_' + record[i].id).innerHTML = 0;
                        //                 document.getElementById('hls_fin_calculator_hd_grid_id_column_value_' + record[i].id).title = 0;
                        //             }
                        //         }
                        //     } else {
                        //         var temp_head_records = $('hls_fin_calculator_hd_ds').getAll();
                        //         for (var i = 0; i < temp_head_records.length; i++) {
                        //             var H16;
                        //             if (temp_head_records[i].get('column_code') == 'H16') {
                        //                 H16 = temp_head_records[i].get('column_value');
                        //             }
                        //             if (temp_head_records[i].get('column_code') == 'H109') {
                        //                 temp_head_records[i].set('column_value', H16);
                        //                 //  temp_head_records[i].set('column_value_c',0);
                        //             }
                        //         }
                        //     }
                        // }

                        function hls_fin_cal_save_hd_submitsuccess_new(ds, res) {
                            if (typeof (nextStep) == 'function') {
                                nextStep(source_procedure);
                            } else {
                                function on_ln_formula_load(ds) {
                                    Leaf.SideBar.enable = true;
                                    success_sidebar_show();
                                    unlock_calc_current_window();
                                    $('ln_formula_ds').un('load', on_ln_formula_load);
                                }

                                $('ln_formula_ds').on('load', on_ln_formula_load);
                                $('ln_formula_ds').query();
                            }
                        }

                        $('hls_fin_cal_save_hd_ds').on('submitsuccess', hls_fin_cal_save_hd_submitsuccess_new);
                        Leaf.SideBar.enable = false;
                        $('hls_fin_cal_save_hd_ds').submit();

                    },
                    failure: function () {
                        unlock_calc_current_window('${l:HLS.SAVING}');

                    },
                    error: function () {
                        unlock_calc_current_window('${l:HLS.SAVING}');

                    },
                    scope: this
                });


            } else {
                var temp_head_records = $('hls_fin_calculator_hd_ds').getAll();
                for (var i = 0; i < temp_head_records.length; i++) {
                    if (!$('temp_hd_attribute_ds').find('column_code', temp_head_records[i].get('column_code'))) {
                        $('temp_hd_attribute_ds').create(temp_head_records[i].data);
                    }
                    var H16;
                    if (temp_head_records[i].get('column_code') == 'H16') {
                        H16 = temp_head_records[i].get('column_value');
                    }
                    if (temp_head_records[i].get('column_code') == 'H109') {
                        temp_head_records[i].set('column_value', H16);
                        //  temp_head_records[i].set('column_value_c',0);
                    }
                }
                var all_records = $('temp_hd_attribute_ds').getAll();
                var headRecord = $('hls_fin_cal_save_hd_ds').getAt(0);
                headRecord.isNew = false;
                headRecord.dirty = true;
                create_record_column(all_records, headRecord);

                function hls_fin_cal_save_hd_submitsuccess_new(ds, res) {
                    if (typeof (nextStep) == 'function') {
                        nextStep(source_procedure);
                    } else {
                        function on_ln_formula_load(ds) {
                            Leaf.SideBar.enable = true;
                            success_sidebar_show();
                            unlock_calc_current_window();
                            $('ln_formula_ds').un('load', on_ln_formula_load);
                        }

                        $('ln_formula_ds').on('load', on_ln_formula_load);
                        $('ln_formula_ds').query();
                    }
                }

                $('hls_fin_cal_save_hd_ds').on('submitsuccess', hls_fin_cal_save_hd_submitsuccess_new);
                Leaf.SideBar.enable = false;
                $('hls_fin_cal_save_hd_ds').submit();
            }

        }

        function calc_execute_JD_new(source_procedure) {

            var final_recreate_H_formula, final_recreate_L_formula;
            if (source_procedure == 'RE_CALC') {
                final_recreate_H_formula = 'Y';
                final_recreate_L_formula = 'Y';
            } else {
                final_recreate_H_formula = recreate_H_formula;
                final_recreate_L_formula = recreate_L_formula;
            }
            Leaf.request({
                url: '${/request/@context_path}/autocrud/hls.HLS500.hls_fin_calculator_calc/update',
                para: {
                    calc_session_id: '${/parameter/@calc_session_id}',
                    document_id: '${/parameter/@document_id}',
                    document_category: '${/parameter/@document_category}',
                    recreate_H_formula: final_recreate_H_formula,
                    recreate_L_formula: final_recreate_L_formula,
                    quotation_id: '${/parameter/@quotation_id}'
                },
                success: function (res) {
                    on_calc_success_query('${/parameter/@dsId}', '${/parameter/@document_category}');
                    //get_warning_message(res.result.warning_message);
                    if('${/parameter/@layout_code}'!='CCR_BEFORE_SIGN'){
                        recreate_H_formula = 'N';
                        recreate_L_formula = 'N';
                    }
                    //open_after_save_execute();
                    hls_hls500_user_button1();
                },
                failure: function () {
                    unlock_calc_current_window();
                },
                error: function () {
                    unlock_calc_current_window();
                },
                scope: this
            });
        }

        function calc_execute_NJD_new(source_procedure) {

            var final_recreate_H_formula, final_recreate_L_formula;
            if (source_procedure == 'RE_CALC') {
                final_recreate_H_formula = 'Y';
                final_recreate_L_formula = 'Y';
            } else {
                final_recreate_H_formula = recreate_H_formula;
                if('${/parameter/@layout_code}'=='CCR_BEFORE_SIGN'){
                    final_recreate_L_formula = 'N';
                }else{
                    final_recreate_L_formula = recreate_L_formula;
                }

            }
            Leaf.request({
                url: '${/request/@context_path}/autocrud/hls.HLS500.hls_fin_calculator_calc/update',
                para: {
                    calc_session_id: '${/parameter/@calc_session_id}',
                    document_id: '${/parameter/@document_id}',
                    document_category: '${/parameter/@document_category}',
                    recreate_H_formula: final_recreate_H_formula,
                    recreate_L_formula: final_recreate_L_formula,
                    quotation_id: '${/parameter/@quotation_id}'
                },
                success: function (res) {
                    on_calc_success_query('${/parameter/@dsId}', '${/parameter/@document_category}');
                    //get_warning_message(res.result.warning_message);
                    if('${/parameter/@layout_code}'!='CCR_BEFORE_SIGN'){
                        recreate_H_formula = 'N';
                        recreate_L_formula = 'N';
                    }

                    //open_after_save_execute();
                    hls_hls500_user_button2();
                    // unlock_calc_current_window();
                },
                failure: function () {
                    unlock_calc_current_window();
                },
                error: function () {
                    unlock_calc_current_window();
                },
                scope: this
            });
        }

        function hls_hls500_user_button2() {
            flag = 'Y';
            //lock_calc_current_window();
            Leaf.request({
                url: $('hls_fin_calc_single_variable_manual_link_id').getUrl(),
                para: {
                    calc_session_id: '${/parameter/@calc_session_id}'
                },
                success: function () {
                    if ('${/parameter/@document_category}' == 'PROJECT') {
                        $('${/parameter/@layout_code}_F_QUOTATION_N_prj_quotation_ds').query();
                        $('${/parameter/@layout_code}_G_CASHFLOW_NS_prj_quotation_ds').query();
                    } else if ('${/parameter/@document_category}' == 'CONTRACT') {

                        if(  $('${/parameter/@layout_code}_G_CASHFLOW_1_con_contract_cashflow_ds')){
                            $('${/parameter/@layout_code}_G_CASHFLOW_1_con_contract_cashflow_ds').query();

                        }

                    }
                    open_after_save_execute();
                },
                failure: function () {
                    unlock_calc_current_window();
                },
                error: function () {
                    unlock_calc_current_window();
                },
                scope: this
            });

        }

        ]]></script>
        <a:dataSets>
            <a:placeHolder id="dynamicDataSet_left_id"/>
            <a:dataSet id="hls_dynamiclinefields_ds" autoCreate="true">
                <a:fields>
                    <a:placeHolder id="dynamicLineFields"/>
                </a:fields>
            </a:dataSet>
            <a:dataSet id="line_attribute_ds">
                <a:datas dataSource="/model/calc_config_ln_path"/>
            </a:dataSet>
            <a:dataSet id="line_field_ds">
                <a:datas dataSource="/model/calc_config_ln_all_path"/>
            </a:dataSet>
            <a:dataSet id="temp_hd_attribute_ds">
                <a:datas dataSource="/model/temp_config_hd_path"/>
                <a:events>
                    <a:event name="update" handler="do_hls500_head_update"/>
                </a:events>
            </a:dataSet>
            <a:dataSet id="hd_parameter_sql_value_ds">
                <a:datas dataSource="/model/hd_parameter_sql_value"/>
            </a:dataSet>
            <a:dataSet id="ln_parameter_sql_value_ds">
                <a:datas dataSource="/model/ln_parameter_sql_value"/>
            </a:dataSet>
            <a:dataSet id="hd_attribute_ds">
                <a:datas dataSource="/model/calc_config_hd_path"/>
            </a:dataSet>
            <a:dataSet id="hls_fin_cal_save_hd_ds" autoCreate="true"
                       submitUrl="${/request/@context_path}/modules/hls/HLS500N/hls_fin_calc_save_n.lsc?base_table=HLS_FIN_CALCULATOR_HD&amp;calc_session_id=${/parameter/@calc_session_id}">
                <a:fields>
                    <a:field name="calc_session_id" defaultValue="${/parameter/@calc_session_id}"/>
                </a:fields>
            </a:dataSet>
            <a:dataSet id="ln_formula_ds" bindName="ln_calc_formula_bind_name" bindTarget="hls_fin_cal_save_hd_ds"
                       processfunction="hls500_ln_formula_process"
                       queryUrl="${/request/@context_path}/modules/hls/HLS500N/hls_fin_calculator_base_query.lsc?calc_session_id=${/parameter/@calc_session_id}&amp;ln_formula_table_flag=Y">
                <a:datas dataSource="/model/ln_formula_path"/>
            </a:dataSet>
            <a:dataSet id="hd_formula_ds" bindName="hd_calc_formula_bind_name" bindTarget="hls_fin_cal_save_hd_ds"
                       processfunction="hls500_hd_formula_process">
                <a:datas dataSource="/model/hd_formula_path"/>
            </a:dataSet>
            <a:dataSet id="calc_button_ds">
                <a:datas dataSource="/model/calc_button_path"/>
            </a:dataSet>
            <a:dataSet id="hls_fin_calculator_hd_ds" autoQuery="true" fetchAll="true"
                       model="hls.HLS500N.hls_fin_calc_config_hd_n" processfunction="hls500_hd_process"
                       queryUrl="${/request/@context_path}/autocrud/hls.HLS500N.hls_fin_calc_config_hd_n/query?calc_session_id=${/parameter/@calc_session_id}&amp;enabled_flag=Y&amp;display_flag=Y">
                <a:fields>
                    <a:field name="column_value" lovGridHeight="350" lovHeight="500" lovWidth="500"/>
                    <a:field name="column_value_c"/>
                </a:fields>
                <a:events>
                    <a:event name="update" handler="do_hls500_head_update"/>
                    <a:event name="load" handler="onEditorHdload"/>
                </a:events>
            </a:dataSet>
            <a:dataSet id="hls_fin_calculator_ln_ds" autoQuery="true" bindName="ln_calc_bind_name"
                       bindTarget="hls_fin_cal_save_hd_ds" fetchAll="true" processfunction="hls500_ln_process"
                       queryUrl="${/request/@context_path}/modules/hls/HLS500N/hls_fin_calculator_base_query.lsc?calc_session_id=${/parameter/@calc_session_id}&amp;ln_table_flag=Y"
                       selectable="true">
                <a:events>
                    <a:event name="load" handler="do_hls500_line_load"/>
                    <a:event name="update" handler="do_hls500_line_update"/>
                    <a:event name="remove" handler="do_hls500_line_remove"/>
                </a:events>
            </a:dataSet>
            <a:dataSet id="hls_fin_calculator_export_ds" fetchAll="true"
                       queryUrl="${/request/@context_path}/autocrud/hls.HLS500.hls_fin_calculator_export/query?calc_session_id=${/parameter/@calc_session_id}"/>
        </a:dataSets>
        <a:screenBody padding="0" style="margin:3px">
            <a:vBox padding="0" style="border:1px solid #ccc;">
                <a:screenTopToolbar style="height:40px;padding:0;border-bottom-color:#000;">
                    <div style="font-size:15px;margin:10px 5px 0 5px"><![CDATA[${l:HLS.FIN_CALCULATOR}]]></div>
                    <a:placeHolder id="hls500_button_ds"/>
                </a:screenTopToolbar>
                <a:hBox padding="0" style="padding:3px">
                    <a:grid id="hls_fin_calculator_hd_grid_id" bindTarget="hls_fin_calculator_hd_ds" marginHeight="140"
                            rowRenderer="hd_grid_rowrenderer" style="margin-right:3px"
                            width="${/model/calc_config_hd_path/record/@grid_left_width}">
                        <a:columns>
                            <a:column name="column_code" align="left" autoAdjust="false"
                                      prompt="HLS050.HLS_FIN_CALC_CONFIG.COLUMN_CODE" width="40"/>
                            <a:column name="prompt" align="right" autoAdjust="false" prompt="HLS500.PROMPT"
                                      width="110"/>
                            <a:column name="column_value" autoAdjust="false" editorFunction="parameter_function"
                                      prompt="HLS500.PROMPT_VALUE" renderer="seedetail_column_hd"
                                      showtitle="${/model/calc_config_hd_path/record/@sys_grid_show_title}"
                                      width="110"/>
                            <a:column name="percent" autoAdjust="false" width="19"/>
                        </a:columns>
                        <a:editors>
                            <a:numberField id="hls500_hd_numberfield_id"/>
                            <a:lov id="hls500_hd_lov_id">
                                <a:events>
                                    <a:event name="beforecommit" handler="on_object_hd_calc_beforecommit"/>
                                    <a:event name="focus" handler="on_object_hd_calc_focus"/>
                                </a:events>
                            </a:lov>
                            <a:textField id="hls500_hd_textfield_id"/>
                            <a:datePicker id="hls500_hd_datepicker_id"/>
                            <a:checkBox id="hls500_hd_checkbox_id"/>
                            <a:comboBox id="hls500_hd_combobox_id">
                                <a:events>
                                    <a:event name="focus" handler="on_object_hd_calc_focus"/>
                                </a:events>
                            </a:comboBox>
                        </a:editors>
                        <a:events>
                            <a:event name="cellclick" handler="hls500_hd_cellcick"/>
                        </a:events>
                    </a:grid>
                    <a:grid id="hls_fin_calculator_ln_grid_id" bindTarget="hls_fin_calculator_ln_ds" marginHeight="140"
                            marginWidth="${/model/calc_config_hd_path/record/@grid_margin_width}">
                        <a:columns>
                            <a:placeHolder id="dynamicLineColumn_id"/>
                        </a:columns>
                        <a:editors>
                            <a:numberField id="hls500_ln_numberfield_id"/>
                            <a:lov id="hls500_ln_lov_id">
                                <a:events>
                                    <a:event name="beforecommit" handler="on_object_ln_calc_beforecommit"/>
                                    <a:event name="focus" handler="on_object_ln_calc_focus"/>
                                </a:events>
                            </a:lov>
                            <a:textField id="hls500_ln_textfield_id"/>
                            <a:datePicker id="hls500_ln_datepicker_id"/>
                            <a:checkBox id="hls500_ln_checkbox_id"/>
                        </a:editors>
                        <a:events>
                            <a:event name="cellclick" handler="hls500_ln_cellcick"/>
                        </a:events>
                    </a:grid>
                    <script type="text/javascript"><![CDATA[
                    Leaf.onReady(function () {
                        var records = $('line_field_ds').getAll();
                        if (records.length) {
                            for (var i = 0; i < records.length; i++) {
                                var record = records[i], column_name = record.get('column_name');
                                if (record.get('display_flag') == 'C') {
                                    $('hls_fin_calculator_ln_grid_id').hideColumn(column_name);
                                    $('hls_fin_calculator_export_grid_id').hideColumn(column_name);
                                }
                            }
                        }
                    });
                    ]]></script>
                </a:hBox>
            </a:vBox>
            <a:grid id="hls_fin_calculator_export_grid_id" bindTarget="hls_fin_calculator_export_ds" height="350"
                    width="900">
                <a:columns>
                    <a:column name="prompt" align="right" autoAdjust="false" lock="true" prompt="HLS500.PROMPT"
                              width="100"/>
                    <a:column name="column_value" autoAdjust="false" editorFunction="parameter_function" lock="true"
                              prompt="HLS500.PROMPT_VALUE" renderer="seedetail_column_hd" showtitle="true"/>
                    <a:column name="percent" autoAdjust="false" lock="true" prompt=" " width="19"/>
                    <a:placeHolder id="dynamicLineColumn_export_id"/>
                </a:columns>
            </a:grid>
        </a:screenBody>
    </a:view>
    <a:view-config>
        <c:create-config targetId="dynamicDataSet_left_id">
            <p:loop source="/model/calc_config_hd_path">
                <p:switch test="@validation_type">
                    <p:case value="COMBOBOX">
                        <c:process-config>
                            <a:dataSet id="${@layout_area_seq}_${@column_name}_combobox_ds"
                                       queryUrl="${/request/@context_path}/autocrud/hls.HLS500.hls_parameters_lov/query"/>
                        </c:process-config>
                    </p:case>
                </p:switch>
            </p:loop>
        </c:create-config>
        <c:create-config targetId="hls500_button_ds">
            <p:loop source="/model/calc_button_path">
                <p:switch test="@button_code">
                    <p:case value="EXIT">
                        <c:process-config>
                            <a:gridButton click="hls_hls500_return" style="margin-top:10px;margin-left:5px"
                                          text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="ADD_LN">
                        <c:process-config>
                            <a:gridButton id="hls_hls500_add_id" click="hls_hls500_add"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="DEL_LN">
                        <c:process-config>
                            <a:gridButton id="hls_hls500_delete_id" click="hls_hls500_delete"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="SAVE">
                        <c:process-config>
                            <!--                            <a:gridButton id="hls_hls500_save_id" click="hls_hls500_save" style="margin-top:10px;margin-left:5px" text="${@prompt}"/>-->
                            <a:gridButton id="hls_hls500_save_id" click="hls_hls500_save_new"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>

                        </c:process-config>
                    </p:case>
                    <p:case value="MODF_FORMULA">
                        <c:process-config>
                            <a:gridButton id="hls_hls500_formula_id" click="hls_hls500_formula_change"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="CALC">
                        <c:process-config>
                            <a:gridButton id="hls_hls500_calc_id" click="hls_hls500_calc"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="RE_CALC">
                        <c:process-config>
                            <a:gridButton id="hls_hls500_re_calc_id" click="hls_hls500_re_calc"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="SAVE_QUOTATION">
                        <c:process-config>
                            <a:gridButton id="hls_hls500_quotation_id" click="hls_hls500_quotation"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="EXPORT">
                        <c:process-config>
                            <a:gridButton id="hls_hls500_export_id" click="hls_hls500_export"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="IMPORT">
                        <c:process-config>
                            <a:gridButton id="hls_hls500_import_id" click="hls_hls500_import"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="RESTRUCTURE">
                        <c:process-config>
                            <a:gridButton id="hls_hls500_restructure_id" click="hls_hls500_restructure"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="SHOW_COL">
                        <c:process-config>
                            <a:gridButton id="hls_hls500_show_col_id" click="hls_hls500_show_col"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="USER_BUTTON1">
                        <c:process-config>
                            <!--<a:gridButton id="hls_hls500_user_button1_col_id" click="hls_hls500_user_button1" style="margin-top:10px;margin-left:5px" text="${@prompt}"/>-->
                            <!--<div style="margin-top:10px;margin-left:10px;color: red">请先点计算按钮,再执行均等计算(若改变参数值,请先点击公式重算！) </div>-->
                            <a:gridButton id="hls_hls500_user_button1_col_id" click="hls_hls500_JD"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="USER_BUTTON2">
                        <c:process-config>
                            <a:gridButton id="hls_hls500_user_button2_col_id" click="hls_hls500_NJD"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="USER_BUTTON3">
                        <c:process-config>
                            <a:gridButton id="hls_hls500_user_button3_col_id" click="hls_hls500_3JD"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="*">
                        <c:process-config>
                            <a:gridButton id="hls500_${@button_code}" click="hls500_define_button"
                                          style="margin-top:10px;margin-left:5px" text="${@prompt}"/>
                        </c:process-config>
                    </p:case>
                </p:switch>
            </p:loop>
        </c:create-config>
        <c:create-config targetId="dynamicLineColumn_id">
            <p:loop source="/model/calc_config_ln_path">
                <p:switch test="@show_column_code">
                    <p:case value="Y">
                        <c:process-config>
                            <a:column lock="${@lock_column}" prompt="${@column_code}" width="${@width}">
                                <a:column name="${@column_name}" align="${@alignment}"
                                          editorFunction="do_hls500_column_name" exportDatatype="${@data_type}"
                                          footerRenderer="calc_sumfunction" lock="${@lock_column}" prompt="${@prompt}"
                                          renderer="wrap_render" showtitle="${@sys_grid_show_title}" width="${@width}"/>
                            </a:column>
                        </c:process-config>
                    </p:case>
                    <p:case value="N">
                        <c:process-config>
                            <a:column name="${@column_name}" align="${@alignment}"
                                      editorFunction="do_hls500_column_name" exportDatatype="${@data_type}"
                                      footerRenderer="calc_sumfunction" lock="${@lock_column}" prompt="${@prompt}"
                                      renderer="wrap_render" showtitle="${@sys_grid_show_title}" width="${@width}"/>
                        </c:process-config>
                    </p:case>
                </p:switch>
            </p:loop>
        </c:create-config>
        <c:create-config targetId="dynamicLineColumn_export_id">
            <p:loop source="/model/calc_config_ln_path">
                <c:process-config>
                    <a:column lock="${@lock_column}" prompt="${@upper_column_name}" width="${@width}">
                        <a:column name="${@column_name}" align="${@alignment}" editorFunction="do_hls500_column_name"
                                  exportDatatype="${@data_type}" lock="${@lock_column}" prompt="${@prompt}"
                                  renderer="wrap_render" showtitle="${@sys_grid_show_title}" sortable="true"
                                  width="${@width}"/>
                    </a:column>
                </c:process-config>
            </p:loop>
        </c:create-config>
        <c:create-config targetId="dynamicLineFields">
            <p:loop source="/model/calc_config_ln_all_path">
                <c:process-config>
                    <a:field name="${@column_name}" defaultValue="${@default_value}" lovGridHeight="350" lovHeight="500"
                             lovWidth="500"/>
                </c:process-config>
            </p:loop>
        </c:create-config>
    </a:view-config>
</a:screen>
