<?xml version="1.0" encoding="UTF-8"?>
<!--
    $Author: zhangxing5129
    $Date: 2014-8-29 下午03:53:38
    $Revision: 1.0
    $Purpose: 商业伙伴创建 明细页面
-->
<a:screen xmlns:a="http://www.leaf-framework.org/application" customizationEnabled="true" dynamiccreateenabled="true"
          trace="true">
    <a:init-procedure>
        <a:model-query fetchAll="true" model="hls.HLS213N.hls_bp_master_unit" rootPath="user_agent_description"/>
        <a:model-query fetchAll="true" model="hls.HLS214N.hls_bp_master_modify_user" rootPath="modify_user"/>
        <a:model-query model="cont.CON620.get_sys_role" rootPath="role_info"/>
    </a:init-procedure>
    <a:view>
        <a:link id="get_special_fields_link_id" model="hls.HLS213N.social_code_exist" modelaction="update"/>

        <a:link id="gh_nc_post_addsupplierinfo_link" model="hls.HLS213.hls_bp_master_nc_post" modelaction="update"/>
        <a:link id="hls214N_cdd_uploadFile_id" url="${/request/@context_path}/uploadFile.lview"/>
        <a:link id="hls214N_cdd_downloadFile_id" url="${/request/@context_path}/downloadFile.lview"/>
        <script src="${/request/@context_path}/modules/prj/PRJ500N/javascripts/input_validator.js"
                type="text/javascript"/>
        <a:link id="gh_nc_post_addcustomerinfo_link" model="hls.HLS213.hls_bp_master_nc_post" modelaction="execute"/>
        <a:link id="${/parameter/@layout_code}_signer_create_link_id" model="hls.HLS213.hls_bp_master_signer_create_check"
                modelaction="update"/>
        <script type="text/javascript"><![CDATA[
        Leaf.onReady(function () {
            var unit_id = '${/model/user_agent_description/record/@unit_id}';
            var unit_id_n = '${/model/user_agent_description/record/@bp_name}';
            var employee_type_id = '${/model/modify_user/record/@employee_type_id}';

            var ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master_role');
            var bp_ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master');

            var address_ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master_address');

            var bp_record = $(bp_ds_id).getCurrentRecord();
            var bank_ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master_bank_account');
            var bank_record = $(bank_ds_id).getCurrentRecord();

            bp_record.set('bp_category', '${/parameter/@bp_category}');
            bp_record.set('owner_user_id', '${/session/@user_id}');
            bp_record.set('unit_id', unit_id);
            bp_record.set('unit_id_n', unit_id_n);
            if(bp_record.get('bp_type')!='THIRD_PARTY'){
                if (employee_type_id == '64') {
                    bp_record.getField('unit_id_n').setReadOnly(true);
                    bp_record.getField('unit_id_n').setRequired(false);
                } else {
                    bp_record.getField('unit_id_n').setReadOnly(false);
                    bp_record.getField('unit_id_n').setRequired(true);
                }
            }

            if ('${/parameter/@bp_type}' == 'AGENT') {
                bp_record.getField('agent_type_n').setReadOnly(false);
                // bp_record.getField('agent_type_n').setRequired(true);

            } else {
                bp_record.getField('agent_type_n').setReadOnly(true);
                // bp_record.getField('agent_type_n').setRequired(false);
            }
            if (ds_id && '${/parameter/@default_value_dsid}') {
                var head_record = $('${/parameter/@default_value_dsid}').getCurrentRecord();

                var bp_master_role_ds = $(ds_id);
                var record = new Leaf.Record({
                    'primary_flag': 'Y',
                    'bp_category': head_record.get('bp_category'),
                    'bp_category_n': head_record.get('bp_category_n'),
                    'bp_type': head_record.get('bp_type'),
                    'bp_type_n': head_record.get('bp_type_n'),
                    'bp_class': head_record.get('bp_class'),
                    'bp_class_n': head_record.get('bp_class_n'),
                    'company_nature': head_record.get('company_nature'),
                    'conpany_personal': head_record.get('conpany_personal'),
                    'actual_online': head_record.get('actual_online'),
                    'brand_unbrand': head_record.get('brand_unbrand'),
                    'enabled_flag': 'Y'
                });
                bp_master_role_ds.add(record);
                var address_ds_id_ds = $(address_ds_id);
                var address_bp_record = $('${/parameter/@default_value_dsid}').getCurrentRecord();
                if (address_bp_record.get('bp_class') == 'NP'&&record.get('bp_type') != 'THIRD_PARTY'){
                    //POSTAL_ADDRESS  通讯地址
                    var record1 = new Leaf.Record({
                        'address_type': 'HOUSEHOLD_ADDRESS',
                        'address_type_n': '户籍地址',
                        'country_id': 32,
                        'country_id_n': '中华人民共和国'
                    });
                    var record2 = new Leaf.Record({
                        'address_type': 'POSTAL_ADDRESS',
                        'address_type_n': '通讯地址',
                        'country_id': 32,
                        'country_id_n': '中华人民共和国'
                    });
                    address_ds_id_ds.add(record1);
                    address_ds_id_ds.add(record2);

                    var address_record = address_ds_id_ds.getAt(0);
                    address_record.getField('address_type_n').setReadOnly(true);
                    address_record.getField('country_id_n').setReadOnly(true);

                    var address_record1 = address_ds_id_ds.getAt(1);
                    address_record1.getField('address_type_n').setReadOnly(true);
                    address_record1.getField('country_id_n').setReadOnly(true);

                }else if (address_bp_record.get('bp_class') == 'ORG'&&record.get('bp_type') != 'THIRD_PARTY'){
                    //法人
                    //POSTAL_ADDRESS  通讯地址
                    if(bp_record.get('bp_type')!='THIRD_PARTY') {
                        var record2 = new Leaf.Record({
                            'address_type': 'POSTAL_ADDRESS',
                            'address_type_n': '通讯地址',
                            'country_id': 32,
                            'country_id_n': '中华人民共和国'
                        });
                        address_ds_id_ds.add(record2);

                        var address_record = address_ds_id_ds.getAt(0);
                        address_record.getField('address_type_n').setReadOnly(true);
                        address_record.getField('country_id_n').setReadOnly(true);
                    }
                }
                var current_record = bp_master_role_ds.getAt(0);
                current_record.getField('bp_type_n').setReadOnly(true);
                current_record.getField('enabled_flag').setReadOnly(true);
                if (head_record.get('bp_category') == 'MANUFACTURER') {
                    bp_record.set('company_nature_n', '');
                    bp_record.getField('company_nature_n').setReadOnly(true);
                    bp_record.set('conpany_personal_n', '');
                    bp_record.getField('conpany_personal_n').setReadOnly(true);
                    bp_record.set('actual_online_n', '');
                    bp_record.getField('actual_online_n').setReadOnly(true);
                    bp_record.set('brand_unbrand_n', '');
                    bp_record.getField('brand_unbrand_n').setReadOnly(true);
                    current_record.getField('bp_type_n').setReadOnly(true);
                    current_record.getField('enabled_flag').setReadOnly(true);
                } else if (head_record.get('bp_category') == 'VENDER') {
                    bp_record.getField('unit_id_n').setReadOnly(true);
                    bp_record.getField('unit_id_n').setRequired(false);
                } else {
                    current_record.getField('bp_type_n').setReadOnly(true);
                    current_record.getField('enabled_flag').setReadOnly(true);
                }
            }
        });

        //删除角色按钮
        window['${/parameter/@layout_code}_G_ROLE_USER_BUTTON1_layout_dynamic_tab_click'] = function () {
            var ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master_role');
            var records = $(ds_id).getSelected();
            if (!records.length) {
                Leaf.showMessage('${l:PROMPT}', '请至少选择一条记录');
                return false;
            }
            //else{
            // Leaf.showMessage('${l:PROMPT}', '是否删除角色?');
            //}
            //alert(records.length);
            for (var i = 0; i < records.length; i++) {
                var primary_flag = records[i].get('primary_flag');
                if (primary_flag == 'Y') {
                    Leaf.showMessage('${l:PROMPT}', '主角色无法被删除!');
                    continue;
                } else {
                    $(ds_id).remove(records[i]);
                }
            }
        };

        window['${/parameter/@bp_seq}${/parameter/@layout_code}_on_layout_dynamic_form_add_and_load'] = function (ds, record, config_records, bp_seq) {
            //第三方创建页面隐藏角色新增按钮
            debugger;
            if( record.get('bp_type')== 'THIRD_PARTY'){
                if(document.getElementById('${/parameter/@layout_code}_G_ROLE_ADD_layout_dynamic_button_id')){
                    document.getElementById('${/parameter/@layout_code}_G_ROLE_ADD_layout_dynamic_button_id').style.display = "none";
                }
                if(document.getElementById('${/parameter/@layout_code}_G_ROLE_USER_BUTTON1_layout_dynamic_button_id')){
                    document.getElementById('${/parameter/@layout_code}_G_ROLE_USER_BUTTON1_layout_dynamic_button_id').style.display = "none";
                }
            }


            if ((ds.id).indexOf('hls_bp_master') != -1) {
                // record.getField('cell_phone').setRequired(true);
                //record.getField('cell_phone').setRequired(true);
                //身份证验证
                if (ds.fields.id_card_no) {

                    //ds.fields.id_card_no.pro.validator = id_card_no_validate;
                }

                if (ds.fields.parent_id) {
                    record.getField('parent_id_n').setReadOnly(true);
                }

                if (record.get('bp_class') && record.get('bp_class') == 'ORG') {
                    if (record.get('invoice_method') == 'BILLING') {
                            record.getField('taxpayer_type').setRequired(true);
                            record.getField('taxpayer_type_n').setRequired(true);
                            record.getField('tax_registry_num').setRequired(true);
                            record.getField('invoice_title').setRequired(true);
                            record.getField('invoice_bp_address').setRequired(true);
                            record.getField('invoice_bp_phone_num').setRequired(true);
                            record.getField('invoice_bp_bank').setRequired(true);
                            record.getField('invoice_bp_bank_account').setRequired(true);
                    }
                    if (record.get('invoice_method') == 'NO_BILLING') {
                        record.getField('taxpayer_type').setRequired(true);
                        record.getField('taxpayer_type_n').setRequired(true);
                        record.getField('tax_registry_num').setRequired(false);
                        record.getField('invoice_title').setRequired(false);
                        record.getField('invoice_bp_address').setRequired(false);
                        record.getField('invoice_bp_phone_num').setRequired(false);
                        record.getField('invoice_bp_bank').setRequired(false);
                        record.getField('invoice_bp_bank_account').setRequired(false);
                    }


                }
                if (record.get('bp_class') && record.get('bp_class') == 'NP') {
                    record.set('taxpayer_type', 'SMALL_SCALE_TAXPAYER');
                    record.set('taxpayer_type_n', '小规模纳税人');
                    // 自然人才有配偶
                    if (record.get('marital_status') && (record.get('marital_status') == '30' || record.get('marital_status') == '40')) {
                        document.getElementById('${/parameter/@layout_code}_F_SPOUSE_1_component_id').style.display = 'block';
                        record.getField('bp_name_sp').setRequired(true);
                        record.getField('card_type_sp').setRequired(true);
                        record.getField('card_type_sp_n').setRequired(true);
                        record.getField('id_no_sp').setRequired(true);
                    } else {
                        document.getElementById('${/parameter/@layout_code}_F_SPOUSE_1_component_id').style.display = 'none';
                    }

                }
                record.set('invoice_title', record.get('bp_name'));
                if(record.get('taxpayer_type') == 'GENERAL_TAXPAYER'&&record.get('bp_type') != 'THIRD_PARTY'){
                    //设置开票类型为纸质只读
                    record.set('invoice_type','PAPER');
                    record.set('invoice_type_n','纸质发票');
                    record.getField('invoice_type').setReadOnly(true);
                    record.getField('invoice_type_n').setReadOnly(true);
                    record.getField('invoice_type').setRequired(false);
                    record.getField('invoice_type_n').setRequired(false);
                    record.getField('reception_maile').setRequired(false);
                }else if(record.get('taxpayer_type') == 'SMALL_SCALE_TAXPAYER'&&record.get('bp_type') != 'THIRD_PARTY'){
                    record.set('invoice_type','ECT');
                    record.set('invoice_type_n','电子发票');
                    record.getField('invoice_type').setRequired(true);
                    record.getField('invoice_type_n').setRequired(true);
                    record.getField('invoice_type').setReadOnly(false);
                    record.getField('invoice_type_n').setReadOnly(false);
                }

            }

        };
        var card_identity_flag;
        var sp_identity_flag;

        function id_card_no_validate(record, name, value) {
            var id_type = record.get('id_type');
            var card_type_sp = record.get('card_type_sp');
            if (name == 'id_card_no') {
                var bp_name = record.get('bp_name');
            } else if (name == 'id_no_sp') {
                bp_name = record.get('bp_name_sp');
            }
            if (id_type == 'ID_CARD') {
                var id_card_no = record.get('id_card_no');
                if (!checkCard(id_card_no)) {
                    return '请输入正确格式的身份证';
                } else {
                    card_identity_flag = 'N';
                    sp_identity_flag = 'N';

                }
            } else {
                card_identity_flag = 'N';
                sp_identity_flag = 'N';
            }
            if (card_type_sp == 'ID_CARD') {
                var id_no_sp = record.get('id_no_sp');
                if (!checkCard(id_no_sp)) {
                    return '请输入正确格式的身份证';
                } else {
                    card_identity_flag = 'N';
                    sp_identity_flag = 'N'

                }
            } else {
                card_identity_flag = 'N';
                sp_identity_flag = 'N';
            }
            if (value.length == 18) {
                record.set('date_of_birth', new Date(value.substr(6, 4) + '/' + value.substr(10, 2) + '/' + value.substr(12, 2)));
                record.set('age', new Date().getFullYear() - value.substr(6, 4));
                if (value.substr(16, 1) % 2 == 1) {
                    record.set('gender', 'MALE');
                    record.set('gender_n', '男');
                } else if (value.substr(16, 1) % 2 == 0) {
                    record.set('gender', 'FEMALE');
                    record.set('gender_n', '女');
                }

            }
            return true;
        }

        function CheckSocialCreditCode(Code) {

            var patrn = /^[0-9A-Z]+$/;
            //18位校验及大写校验
            if ((Code.length != 18) || (patrn.test(Code) == false)) {
                return false;
            } else {
                var Ancode;//统一社会信用代码的每一个值
                var Ancodevalue;//统一社会信用代码每一个值的权重
                var total = 0;
                var weightedfactors = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];//加权因子
                var str = '0123456789ABCDEFGHJKLMNPQRTUWXY';
                //不用I、O、S、V、Z
                for (var i = 0; i < Code.length - 1; i++) {
                    Ancode = Code.substring(i, i + 1);
                    Ancodevalue = str.indexOf(Ancode);
                    total = total + Ancodevalue * weightedfactors[i];
                    //权重与加权因子相乘之和
                }
                var logiccheckcode = 31 - total % 31;

                if (logiccheckcode == 31) {
                    logiccheckcode = 0;
                }
                var Str = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,T,U,W,X,Y";
                var Array_Str = Str.split(',');
                logiccheckcode = Array_Str[logiccheckcode];

                var checkcode = Code.substring(17, 18);
                if (logiccheckcode != checkcode) {
                    return false;
                } else {
                    return true;
                }
            }
        }

        function fin_institution_code_validate(record, name, value) {
            // if (!value) {
            // return '金融机构代码不能为空';
            // } else {
            // if (value.length != 11) {
            // return '金融机构代码长度必须为11位';
            // }
            // }
            // return true;
        }

        // function trade_type_code_validate(record, name, value) {
        // var trade_type_code = record.get('trade_type_code');
        // if(!trade_type_code){
        // if(trade_type_code != trade_type_code.toLowerCase()){
        // return '行业分类代码必须为小写字母';
        // }}
        // return true;
        // }

        //        //新增和加载时调用form
        //        window['${/parameter/@bp_seq}${/parameter/@layout_code}_on_layout_dynamic_form_add_and_load'] = function(ds, record, config_records, bp_seq) {
        //            if ((ds.id).indexOf('hls_bp_master_credit') != -1 && (ds.id).indexOf('F_ORG_CREDIT') != -1) {
        //                // if (ds.fields.fin_institution_code) {
        //                // ds.fields.fin_institution_code.pro.validator = fin_institution_code_validate;
        //                // }
        //                // if (ds.fields.trade_type_code) {
        //                // ds.fields.trade_type_code.pro.validator = trade_type_code_validate;
        //                // }
        //            }
        //        };

        /*保存前调用,生成项目编号*/
        // window['${/parameter/@layout_code}_on_layout_dynamic_before_submit'] = function (ds, record) {
        //
        //     window['${/parameter/@layout_code}_lock_layout_dynamic_window']();
        //     var ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master');
        //     var head_record = $(ds_id).getCurrentRecord();
        //     var check_flag = false;
        //     if (head_record.get('bp_code')) {
        //         return true;
        //     }
        //     Leaf.request({
        //         url: $('get_special_fields_link_id').getUrl(),
        //         para: {
        //             bp_id: head_record.get('bp_id')
        //         },
        //         success: function (res) {
        //             var document_number = res.result.document_number;
        //             head_record.set('bp_code', document_number);
        //             if (head_record.get('marital_status') && (head_record.get('marital_status') !== '30' && head_record.get('marital_status') !== '40')) {
        //                 head_record.set('bp_name_sp', null);
        //                 head_record.set('card_type_sp', null);
        //                 head_record.set('card_type_sp_n', null);
        //                 head_record.set('id_no_sp', null);
        //                 head_record.set('date_of_birth_sp', null);
        //                 head_record.set('cell_phone_sp', null);
        //                 head_record.set('work_unit_phone_sp', null);
        //                 head_record.set('work_unit_name_sp', null);
        //                 head_record.set('work_unit_address_sp', null);
        //             }
        //             check_flag = true;
        //             window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
        //
        //         },
        //         error: function () {
        //             window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
        //         },
        //         failure: function () {
        //             window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
        //         },
        //         sync: true,
        //         scope: this
        //     });
        //     return check_flag;
        //
        // };
        window['${/parameter/@layout_code}_on_layout_dynamic_before_submit'] = function (ds, record) {
            window['${/parameter/@layout_code}_lock_layout_dynamic_window']();
            var ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master');
            var head_record = $(ds_id).getCurrentRecord();
            var bank_ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master_bank_account');
            var bank_record = $(bank_ds_id).getAll();
            var file_ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'prj_cdd_item_doc_ref');
            var file_record = $(file_ds_id).getAll();
            if(bank_record.length>0){
                var flag = true;
                for(var i=0;i<bank_record.length;i++){
                    var full_name=bank_record[i].get('bank_full_name');
                    var branch_name=bank_record[i].get('bank_branch_name');
                    if (!Leaf.isEmpty(bank_record[i].get('bank_full_name'))&&
                        !Leaf.isEmpty(bank_record[i].get('bank_branch_name'))){
                        if(branch_name.indexOf(full_name)==-1){
                            flag = false;
                        }
                    }
                    if(flag == false){
                        Leaf.showErrorMessage('${l:PROMPT}', '请填写支行全称(例如:上海浦东发展银行外高桥保税区支行)');
                        return false;
                    }
                }
            }
            var role_ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master_role');
            var role_records = $(role_ds_id).getAll();
            var role_flag=true;
            if(role_records.length>1){
                for (var i = 0;i < role_records.length;i++) {
                    if(role_records[i].get('bp_type')=='THIRD_PARTY'){
                        role_flag=false;
                    }
                }
            }
            if(role_flag==false){
                Leaf.showErrorMessage('${l:PROMPT}', '第三方不能含有其他角色类型');
                return false;
            }

             if(head_record.get('bp_type')=='THIRD_PARTY'){
                var flag = true;
                if (bank_record.length <=0){
                    Leaf.showErrorMessage('${l:PROMPT}', '第三方必填[银行帐户信息],请在银行帐户信息新增!');
                    return false;
                } else{
                    for(var i=0;i<bank_record.length;i++){
                        if (Leaf.isEmpty(bank_record[i].get('bank_account_name'))||
                            Leaf.isEmpty(bank_record[i].get('bank_account_num'))||
                            Leaf.isEmpty(bank_record[i].get('bank_full_name'))){
                            flag = false;
                            break;
                        }
                        else{
                            flag = true;
                        }
                   }
                if(flag == false){
                    Leaf.showErrorMessage('${l:PROMPT}', '请将银行账户信息填写完整');
                    return false;
                }


            }
             }

            //验证是否有户籍地址,或者通讯地址
            var address_ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master_address');
            var records_addr = $(address_ds_id).getAll();``
            if (head_record.get('bp_class') =='NP'&&head_record.get('bp_type')!='THIRD_PARTY'){
                //判断户籍地址
                var flag = true;
                if (records_addr.length <=0){
                    Leaf.showErrorMessage('${l:PROMPT}', '自然人必填[通讯地址]和[户籍地址],请在地址信息新增!');
                    return false;
                }else{
                    for(var i=0;i<records_addr.length;i++){
                        if (records_addr[i].get('address_type') == 'HOUSEHOLD_ADDRESS'){
                            flag = true;
                            break;
                        }else{
                            flag = false;
                        }
                    }
                    //判断通讯地址
                    var flag1 = true;
                    for(var i=0;i<records_addr.length;i++){
                        if (records_addr[i].get('address_type') == 'POSTAL_ADDRESS'){
                            flag1 = true;
                            break;
                        }else{
                            flag1 = false;
                        }
                    }
                    if (flag == false || flag1 == false){
                        Leaf.showErrorMessage('${l:PROMPT}', '自然人必填[通讯地址]和[户籍地址],请在地址信息新增!');
                        return  false;
                    }
                }
            }else if (head_record.get('bp_class') == 'ORG'&&head_record.get('bp_type')!='THIRD_PARTY'){
                //判断通讯地址
                var flag1 = true;
                if (records_addr.length <= 0){
                    Leaf.showErrorMessage('${l:PROMPT}', '法人必填[通讯地址],请在地址信息新增!');
                    return  false;
                }else {
                    for(var i=0;i<records_addr.length;i++){
                        if (records_addr[i].get('address_type') == 'POSTAL_ADDRESS'){
                            flag1 = true;
                            break;
                        }else{
                            flag1 = false;
                        }
                    }
                    if (flag1 == false){
                        Leaf.showErrorMessage('${l:PROMPT}', '法人必填[通讯地址],请在地址信息新增!');
                        return  false;
                    }
                }
            }

            //=================
            var check_flag = false;
            if (head_record.get('marital_status') && (head_record.get('marital_status') !== '30' && head_record.get('marital_status') !== '40')) {
                head_record.set('bp_name_sp', null);
                head_record.set('card_type_sp', null);
                head_record.set('card_type_sp_n', null);
                head_record.set('id_no_sp', null);
                head_record.set('date_of_birth_sp', null);
                head_record.set('cell_phone_sp', null);
                head_record.set('work_unit_phone_sp', null);
                head_record.set('work_unit_name_sp', null);
                head_record.set('work_unit_address_sp', null);
            }
            check_flag = true;
            return check_flag;
        };


        //保存submitsuccess调用
        window['${/parameter/@layout_code}_on_layout_dynamic_submitsuccess'] = function (ds, record, res, bp_seq) {
            var ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master');
            var head_record = $(ds_id).getCurrentRecord();
            if (!head_record.get('bp_code')) {
                window['${/parameter/@layout_code}_lock_layout_dynamic_window']();
                Leaf.request({
                    url: $('get_special_fields_link_id').getUrl(),
                    para: {
                        bp_id: head_record.get('bp_id')
                    },
                    success: function (res) {
                        var document_number = res.result.document_number;
                        head_record.set('bp_code', document_number);
                        window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();

                    },
                    error: function () {
                        window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
                    },
                    failure: function () {
                        window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
                    },
                    sync: true,
                    scope: this
                });
            }
            $(ds_id).setQueryParameter('bp_id', head_record.get('bp_id'));
            $(ds_id).query();
            //add by zc
            var signer_ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master_signer');
            if(head_record.get('bp_id')){
                Leaf.request({
                    url: $('${/parameter/@layout_code}_signer_create_link_id').getUrl(),
                    para: {
                        bp_id: head_record.get('bp_id')
                    },
                    success: function (res) {
                        $(signer_ds_id).query();
                        window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
                    },
                    failure: function (res) {
                        window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
                    },
                    error: function () {
                        window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
                    },
                    scope: this
                });
            }
            window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
        };

        window['${/parameter/@bp_seq}${/parameter/@layout_code}_on_layout_dynamic_update'] = function (ds, record, name, value, old_value, bp_seq) {
            var f_bp_create_ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master');
            var gird_ds_id = 'BP_NP_CREATE_BP_ASSETS01_hls_bp_assets_ds';
            var gird_ds_id2 = 'BP_NP_CREATE_BP_ASSETS04_hls_bp_assets_ds';
            var gird_ds_id3 = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_bank_flow');
            if (gird_ds_id == ds.id || gird_ds_id2 == ds.id) {
                if (name == 'relationship_with_bp') {
                    if (value == 'A7501') {
                        record.set('owership', $(f_bp_create_ds_id).getAt(0).get('bp_name'));
                    } else if (value == 'A7502') {
                        record.set('owership', $(f_bp_create_ds_id).getAt(0).get('bp_name_sp'));
                    } else {
                        record.set('owership', '');
                    }
                }
            }
            if (gird_ds_id3 == ds.id) {
                if (name == 'relationship_with_bp') {
                    if (value == 'A7501') {
                        record.set('owner_name', $(f_bp_create_ds_id).getAt(0).get('bp_name'));
                    } else if (value == 'A7502') {
                        record.set('owner_name', $(f_bp_create_ds_id).getAt(0).get('bp_name_sp'));
                    } else {
                        record.set('owner_name', '');
                    }
                }
            }

            if ((ds.id).indexOf('hls_bp_master') != -1 && (ds.id).indexOf('F_BASIC') != -1) {
                if (name == 'agent_type') {
                    if (value == 'AGENT_NO_REBATE' || value == 'AGENT_EE') {
                        record.getField('parent_id_n').setReadOnly(false);
                    } else {
                        record.getField('parent_id_n').setReadOnly(true);
                    }
                }
                if (name == 'id_card_no') {
                    // record = $(hls_bp_master_ds_id).getCurrentRecord();
                    // var id_num = record.get('id_card_no');
                    // var bp_age = getAge(id_num);
                    // record.set('age', bp_age);
                    if (!value) {
                        record.set('ccx_resmsg', '');
                    }
                    if (record.get('id_type') == 'ID_CARD') {
                        if (!checkCard(value)) {
                            Leaf.showMessage('${l:HLS.PROMPT}', '个人身份证号错误!');
                            setTimeout(function () {
                                record.set('id_card_no', '');
                            }, 20);
                            return false;
                        } else {
                            if (value.length == 18) {
                                record.set('date_of_birth', new Date(value.substr(6, 4) + '/' + value.substr(10, 2) + '/' + value.substr(12, 2)));
                                record.set('age', new Date().getFullYear() - value.substr(6, 4));
                                if (value.substr(16, 1) % 2 == 1) {
                                    record.set('gender', 'MALE');
                                    record.set('gender_n', '男');
                                } else if (value.substr(16, 1) % 2 == 0) {
                                    record.set('gender', 'FEMALE');
                                    record.set('gender_n', '女');
                                }

                            }
                        }
                    }
                    // ds.fields.id_card_no.pro.validator = id_card_no_validate;
                    //自动带出籍贯
                    // record.set('resident_addres', get_native_place(value))
                }
                if (name == 'id_no_sp' && value) {

                    if (!value) {
                        record.set('ccx_resmsg1', '');
                    }

                    if (record.get('card_type_sp') == 'ID_CARD') {
                        if (!checkCard(value)) {
                            Leaf.showMessage('${l:HLS.PROMPT}', '配偶身份证号错误!');
                            setTimeout(function () {
                                record.set('id_no_sp', '');
                            }, 20);
                            return false;
                        } else {
                            if (value.length == 18) {
                                record.set('date_of_birth_sp', new Date(value.substr(6, 4) + '/' + value.substr(10, 2) + '/' + value.substr(12, 2)));
                            }
                        }
                    }
                    // ds.fields.id_no_sp.pro.validator = id_card_no_validate;
                    // record.set('resident_addres_sp', get_native_place(value))
                }
                if (name == 'bp_name') {
                    record.set('invoice_title', value);
                }
            }

            var hls_bp_master_ds_id = f_bp_create_ds_id;
            if (ds.id == hls_bp_master_ds_id && hls_bp_master_ds_id) {
                if (name == 'id_card_no_leg') {
                    if (!value) {
                        record.set('ccx_resmsg1', '');
                    }
                    var id_card_no_leg = record.get('id_card_no_leg');
                    if (!checkCard(id_card_no_leg)) {
                        Leaf.showMessage('${l:HLS.PROMPT}', '法人代表身份证号格式错误!');
                        setTimeout(function () {
                            record.set('id_card_no_leg', '');
                        }, 20);
                        return false;
                    }
                }
                if (name == 'social_code') {
                    if (value) {
                        if (!CheckSocialCreditCode(value)) {
                            Leaf.showMessage('提示', '统一社会信用代码有误,请重新输入!');
                            setTimeout(function () {
                                record.set('social_code', '');
                            }, 20);
                            // window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
                            return false;
                        }
                    }
                    record.set('tax_registry_num', value);
                }
                if (name == 'cell_phone' && value) {
                    if (!checkMobile(value)) {
                        Leaf.showMessage('提示', '基本信息中,请输入正确格式的手机号码!');
                        setTimeout(function () {
                            record.set('cell_phone', '');
                        }, 20);
                        return false;
                    }
                }
                if (name == 'invoice_title') {
                    if (value != record.get('bp_name')) {
                        setTimeout(function () {
                            record.set('invoice_title', record.get('bp_name'));
                        }, 20);
                    }
                }
                if (name == 'tax_registry_num') {
                    if (value != record.get('social_code')) {
                        setTimeout(function () {
                            record.set('tax_registry_num', record.get('social_code'));
                        }, 20);
                    }
                }
                /*if (name == 'invoice_bp_phone_num' && value) {
                    if (!checkMobile(value)) {
                        Leaf.showMessage('提示', '基本信息中,请输入正确格式的手机号码!');
                        setTimeout(function () {
                            record.set('invoice_bp_phone_num', '');
                        }, 20);
                        return false;
                    }
                }*/
            }

            if (ds.id == f_bp_create_ds_id) {
                var hd_ds = get_dsid_by_tabcode_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'F_BASIC', 'hls_bp_master');
                record = $(hd_ds).getCurrentRecord();
                if (name == 'marital_status') {
                    if (value == '30' || value == '40') {
                        document.getElementById('${/parameter/@layout_code}_F_SPOUSE_1_component_id').style.display = 'block';
                        record.getField('bp_name_sp').setRequired(true);
                        record.getField('card_type_sp').setRequired(true);
                        record.getField('card_type_sp_n').setRequired(true);
                        record.getField('id_no_sp').setRequired(true);
                        if (!record.get('card_type_sp')) {
                            record.set('card_type_sp', 'ID_CARD');
                            record.set('card_type_sp_n', '身份证');
                        }
                    } else {
                        document.getElementById('${/parameter/@layout_code}_F_SPOUSE_1_component_id').style.display = 'none';
                        record.getField('bp_name_sp').setRequired(false);
                        record.getField('card_type_sp').setRequired(false);
                        record.getField('card_type_sp_n').setRequired(false);
                        record.getField('id_no_sp').setRequired(false);
                        // record.set('bp_name_sp', null);
                        // record.set('card_type_sp', null);
                        // record.set('card_type_sp_n', null);
                        // record.set('id_no_sp', null);
                        // record.set('date_of_birth_sp', null);
                        // record.set('cell_phone_sp', null);
                        // record.set('work_unit_phone_sp', null);
                        // record.set('work_unit_name_sp', null);
                        // record.set('work_unit_address_sp', null);
                    }
                }

                if (name == 'invoice_method' && value) {
                    if (record.get('bp_class') == 'ORG') {
                        //开票
                        if (value == 'BILLING') {
                            //一般纳税人
                            if( record.get('taxpayer_type') == 'GENERAL_TAXPAYER'){
                                record.getField('taxpayer_type').setRequired(true);
                                record.getField('taxpayer_type_n').setRequired(true);
                                record.getField('tax_registry_num').setRequired(true);
                                record.getField('invoice_title').setRequired(true);
                                record.getField('invoice_bp_address').setRequired(true);
                                record.getField('invoice_bp_phone_num').setRequired(true);
                                record.getField('invoice_bp_bank').setRequired(true);
                                record.getField('invoice_bp_bank_account').setRequired(true);
                            }else if(record.get('taxpayer_type') == 'SMALL_SCALE_TAXPAYER'){
                                //小规模纳税人
                                record.getField('taxpayer_type').setRequired(true);
                                record.getField('taxpayer_type_n').setRequired(true);
                                record.getField('tax_registry_num').setRequired(true);
                                record.getField('invoice_title').setRequired(true);

                                record.getField('invoice_bp_address').setRequired(false);
                                record.getField('invoice_bp_phone_num').setRequired(false);
                                record.getField('invoice_bp_bank').setRequired(false);
                                record.getField('invoice_bp_bank_account').setRequired(false);
                            }

                        }else if (value == 'NO_BILLING'){//暂时不开票
                            //一般纳税人
                            record.getField('taxpayer_type').setRequired(true);
                            record.getField('taxpayer_type_n').setRequired(true);
                            record.getField('tax_registry_num').setRequired(true);
                            record.getField('invoice_title').setRequired(true);

                            record.getField('invoice_bp_address').setRequired(false);
                            record.getField('invoice_bp_phone_num').setRequired(false);
                            record.getField('invoice_bp_bank').setRequired(false);
                            record.getField('invoice_bp_bank_account').setRequired(false);
                        }
                    }
                }
                if (name == 'taxpayer_type' && value) {
                    if (record.get('bp_class') == 'ORG'&&record.get('bp_type') != 'THIRD_PARTY') {
                        if (value == 'SMALL_SCALE_TAXPAYER') {

                            record.getField('taxpayer_type').setRequired(true);
                            record.getField('taxpayer_type_n').setRequired(true);
                            record.getField('tax_registry_num').setRequired(true);
                            record.getField('invoice_title').setRequired(true);

                            record.getField('invoice_bp_address').setRequired(false);
                            record.getField('invoice_bp_phone_num').setRequired(false);
                            record.getField('invoice_bp_bank').setRequired(false);
                            record.getField('invoice_bp_bank_account').setRequired(false);

                            record.set('invoice_type','ECT');
                            record.set('invoice_type_n','电子发票');
                            record.getField('invoice_type').setRequired(true);
                            record.getField('invoice_type_n').setRequired(true);
                            record.getField('invoice_type').setReadOnly(false);
                            record.getField('invoice_type_n').setReadOnly(false);

                        }else if (value == 'GENERAL_TAXPAYER') {
                            //设置开票类型为纸质只读
                            record.set('invoice_type','PAPER');
                            record.set('invoice_type_n','纸质发票');
                            record.getField('invoice_type').setReadOnly(true);
                            record.getField('invoice_type_n').setReadOnly(true);
                            record.getField('invoice_type').setRequired(false);
                            record.getField('invoice_type_n').setRequired(false);
                            record.getField('reception_maile').setRequired(false);
                            if (record.get('invoice_method') == 'BILLING'){
                                record.getField('taxpayer_type').setRequired(true);
                                record.getField('taxpayer_type_n').setRequired(true);
                                record.getField('tax_registry_num').setRequired(true);
                                record.getField('invoice_title').setRequired(true);

                                record.getField('invoice_bp_address').setRequired(true);
                                record.getField('invoice_bp_phone_num').setRequired(true);
                                record.getField('invoice_bp_bank').setRequired(true);
                                record.getField('invoice_bp_bank_account').setRequired(true);

                            }else if ( record.get('invoice_method') == 'NO_BILLING'){
                                record.getField('taxpayer_type').setRequired(true);
                                record.getField('taxpayer_type_n').setRequired(true);
                                record.getField('tax_registry_num').setRequired(true);
                                record.getField('invoice_title').setRequired(true);

                                record.getField('invoice_bp_address').setRequired(false);
                                record.getField('invoice_bp_phone_num').setRequired(false);
                                record.getField('invoice_bp_bank').setRequired(false);
                                record.getField('invoice_bp_bank_account').setRequired(false);
                            }
                        }
                    }
                }
                if(name == 'invoice_type'){
                    if(value == 'PAPER'){
                        record.getField('reception_maile').setRequired(false);
                    }else{
                        record.getField('reception_maile').setRequired(true);
                    }
                }
            }

            var role_ds = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master_role');
            if (role_ds == ds.id) {
                var flag=true;
                var bp_type_flag='N';
                var records = $(ds.id).getAll();
                if(name=='bp_type'){
                    for (var i = 0;i < records.length;i++) {
                        if(records[i].get('bp_type')=='TENANT'){
                            bp_type_flag='Y';
                        }
                    }
                    if(bp_type_flag=='Y'){
                        for (var i = 0;i < records.length;i++) {
                            if(records[i].get('bp_type')=='TENANT'){
                                records[i].set('primary_flag','Y')
                            }else{
                                records[i].set('primary_flag','N')
                            }
                        }
                    }

                }


                var primary_flag = record.get('primary_flag');
                if (primary_flag == 'Y') {
                    var bm_ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hls_bp_master');
                    var bm_record = $(bm_ds_id).getCurrentRecord();
                    bm_record.set('bp_type', record.get('bp_type'));
                    bm_record.set('bp_type_n', record.get('bp_type_n'));
                    bm_record.set('bp_category', record.get('bp_category'));
                    bm_record.set('bp_category_n', record.get('bp_category_n'));
                }

            }
        };

        function upload_file(id, name, query_only) {
            debugger;
            var record = window['${/parameter/@layout_code}_hls_link_render_record'][id + '---' + name];
            if (record.get('check_id')) {
                var url;
                if (query_only == 'Y') {
                    url = $('hls214N_cdd_downloadFile_id').getUrl() + '?table_name=PRJ_CDD_ITEM_CHECK&header_id=' + record.get('check_id');
                } else {
                        url = $('hls214N_cdd_uploadFile_id').getUrl() + '?table_name=PRJ_CDD_ITEM_CHECK&header_id=' + record.get('check_id');
                }

                var win = new Leaf.Window({
                    url: url,
                    title: '${l:HLS.SUPPORTING_DOCUMENT}',
                    id: 'prj500_cdd_uploadFile_screen_id',
                    width: 850,
                    height: 400
                });

                win.on('close', function () {
                    record.ds.query();
                });
            } else {
                Leaf.showMessage('${l:HLS.PROMPT}', '请先保存!');

            }
        }
        function upload_signer_file(id, name, query_only) {
            var record = window['${/parameter/@layout_code}_hls_link_render_record'][id + '---' + name];
            if (record.get('hls_bp_signer_id')) {
                var url;
                if (query_only == 'Y') {
                    url = $('hls214N_cdd_downloadFile_id').getUrl() + '?table_name=HLS_BP_MASTER_SIGNER&header_id=' + record.get('hls_bp_signer_id');
                } else {
                    url = $('hls214N_cdd_uploadFile_id').getUrl() + '?table_name=HLS_BP_MASTER_SIGNER&header_id=' + record.get('hls_bp_signer_id');
                }

                var win = new Leaf.Window({
                    url: url,
                    title: '${l:HLS.SUPPORTING_DOCUMENT}',
                    id: 'prj500_cdd_uploadFile_screen_id',
                    width: 850,
                    height: 400
                });

                win.on('close', function () {
                    record.ds.query();
                });
            } else {
                Leaf.showMessage('${l:HLS.PROMPT}', '请先保存!');

            }
        }
        //超链接渲染
        window['${/parameter/@layout_code}_dynamic_link_renderer'] = function (value, record, name, config_record) {

            window['${/parameter/@layout_code}_hls_link_render_record'][record.id + '---' + name] = record;
            if (name == 'attachment') {
                link_function = 'upload_file';
                if (record.get('attach_count') == 0 || !record.get('attach_count')) {
                    return '<a href="javascript:window[\'' + link_function + '\'](\'' + record.id + '\',\'' + name + '\',\'' + config_record.get('query_only') + '\');">' + config_record.get('prompt') + '</a>';
                } else {
                    return '<a href="javascript:window[\'' + link_function + '\'](\'' + record.id + '\',\'' + name + '\',\'' + config_record.get('query_only') + '\');">' + config_record.get('prompt') + '(' + record.get('attach_count') + ')' + '</a>';
                }
            } else if (name == 'attach_file_name') {
                if (value != null) {
                    var link = '${/request/@context_path}/atm_download.lsc?attachment_id=';
                    var str = value.split(';;');
                    var url = '';
                    for (var i = 0; i < str.length; i++) {
                        var temp = str[i].split('--');
                        if (!Leaf.isEmpty(temp[0])) {
                            var file_name = temp[0].toUpperCase();
                            var file_suffix = temp[0].substr(temp[0].lastIndexOf('.') + 1).toUpperCase();
                            if (file_name.indexOf('.PDF') >= 0) {
                                url = url + '<a href=javascript:view_pdf(\'' + temp[1] + '\')>' + temp[0] + '</a>' + ',';
                            } else if (file_suffix == 'BMP' || file_suffix == 'JPG' || file_suffix == 'JPEG' || file_suffix == 'PNG' || file_suffix == 'GIF') {
                                url = url + '<a href=' + link + temp[1] + ' ref="img">' + temp[0] + '</a>' + ',';
                            } else {
                                url = url + '<a href=' + link + temp[1] + '>' + temp[0] + '</a>' + ',';
                            }
                        }
                    }
                    return url;

                }
            } else if (name == 'description') {
                if (record.get('important_flag') == 'Y') {
                    return '<font color="RED">' + value + '</font>';
                }
                return value;
            }//签约人授权书附件
            else if(name == 'signer_attachment'){
                var signer_link_function = 'upload_signer_file';
                return '<a href="javascript:window[\'' + signer_link_function + '\'](\'' + record.id + '\',\'' + name + '\',\'' + config_record.get('query_only') + '\');">' + config_record.get('prompt') + '</a>';
            }
        };

        ]]></script>
        <a:screen-include screen="modules/cont/CON500/con_contract_get_layout_code.lview"/>
    </a:view>
</a:screen>