<?xml version="1.0" encoding="UTF-8"?>
<!--
    $Author: gaoyang  
    $Date: 2013-6-24 下午03:23:39  
    $Revision: 1.0  
    $Purpose: 
-->
<a:screen xmlns:c="leaf.application.action" xmlns:p="uncertain.proc" xmlns:a="http://www.leaf-framework.org/application" xmlns:s="leaf.plugin.script" cacheEnabled="true" cacheKey="${/parameter/@layout_code}_screen" customizationEnabled="true" trace="true">
    <a:init-procedure>
        <!-- <s:server-script import="aut_authority_validate.js"/> -->
        <a:model-query fetchAll="true" model="hls.HLS030.hls_doc_layout_main" rootPath="layout_main_path"/>
        <a:model-query fetchAll="true" model="cont.CON500.hls_doc_layout_button" rootPath="layout_main_button_path"/>
        <a:model-query defaultWhereClause="t1.parent_table is null and t1.tab_type!=&apos;TAB&apos; and t1.enabled_flag=&apos;Y&apos; and rownum=1" fetchAll="true" model="cont.CON500.con_hls_doc_layout_tab_query" rootPath="base_table_path"/>
        <!-- <s:server-script><![CDATA[
        	var m=$ctx.get('/model/layout_main_button_path');
        	println(m.toXML());
        	println('**************');
        ]]></s:server-script> -->
    </a:init-procedure>
    <a:view>
        <script type="text/javascript"><![CDATA[
            var dynamic_document_id = '$c{/parameter/@document_id}';
            if ('$c{/parameter/@document_id}') {
                var detail_mask;
                if ('${/parameter/@winid}') {
                    if (parent.$L.CmpManager.get('${/parameter/@winid}')) {
                        detail_mask = parent.$('${/parameter/@winid}').wrap;
                        parent.Leaf.Masker.mask(detail_mask, '${l:HLS.LOADING}');
                    } else {
                        detail_mask = $('${/parameter/@winid}').wrap;
                        Leaf.Masker.mask(detail_mask, '${l:HLS.LOADING}');
                    }
                } else {
                    detail_mask = Ext.getBody();
                    Leaf.Masker.mask(detail_mask, '${l:HLS.LOADING}');
                }
            }
            
            window['${/parameter/@layout_code}_dynamic_link_renderer'] = function(value, record, name, config_record, bp_seq) {
                var link_function = '';
                window['${/parameter/@layout_code}_hls_link_render_record'][record.id + '---' + name] = record;
                if (name == 'bp_link' && record.get('bp_id') && record.get('record_id')) {
                    link_function = '${/parameter/@layout_code}_open_bp_detail_window';
                    return '<a href="javascript:window[\'' + link_function + '\'](\'' + record.id + '\',\'' + name + '\');">' + config_record.get('prompt') + '</a>';
                } else if (name == 'car_detail' && record.get('contract_lease_item_id')) {
                    link_function = '${/parameter/@layout_code}_open_lease_item_detail_window';
                    return '<a href="javascript:window[\'' + link_function + '\'](\'' + record.id + '\',\'' + name + '\');">' + config_record.get('prompt') + '</a>';
                }
            };
            
            window['${/parameter/@layout_code}_open_lease_item_detail_window'] = function(id, name) {
                var record = window['${/parameter/@layout_code}_hls_link_render_record'][id + '---' + name];
                var param = record.data;
                var contract_lease_item_id = record.get('contract_lease_item_id');
                new Leaf.Window({
                    id: 'contract_lease_item_maintain_window',
                    url: $('contract_lease_item_maintain_link').getUrl(),
                    params: {
                        contract_lease_item_id: contract_lease_item_id,
                        winid: 'contract_lease_item_maintain_window'
                    },
                    draggable: true,
                    fullScreen: true
                });
            };
            
            window['${/parameter/@layout_code}_open_bp_detail_window'] = function(id, name) {
                var record = window['${/parameter/@layout_code}_hls_link_render_record'][id + '---' + name];
                var param = record.data;
                param['function_code'] = 'CON501H';
                param['function_usage'] = 'MODIFY';
                param['url_title'] = '${l:HLS212.BP_MASTER_MAINTAIN}';
                hls_doc_get_layout_code('con_contract_get_layout_code_link_id', param, 'con713_hls_bp_master_modify_link', record.ds.id, '${/parameter/@layout_code}');
            };
            
            
            
            function con500_contract_save(nextStep) {
                var root_ds = $('${/model/base_table_path/record/@tab_code}_${/model/base_table_path/record/@base_table}_ds');
                if (root_ds.validate()) {
                    var winid = '${/parameter/@winid}';
                    if (winid) {
                        Leaf.Masker.mask($(winid).wrap, '${l:HLS.EXECUTING}');
                    } else {
                        Leaf.Masker.mask(Ext.getBody(), '${l:HLS.EXECUTING}');
                    }
                    lock_current_window();
                    var root_record = root_ds.getAt(0);
                    root_ds.setSubmitParameter('layout_code', '${/parameter/@layout_code}');
                    on_con_save_dynamic(root_ds, root_record, nextStep, winid);
                }
            }
            
            function con500_contract_submit() {

                Leaf.SideBar.enable = false;
                con500_contract_save(con500_contract_submit_final);
            }
            
            function con500_contract_exit() {
                if ('${/parameter/@winid}') {
                    $('${/parameter/@winid}').close();
                } else {
                    window.location.go(-1);
                }
            }
            
            function con500_contract_save_exit() {
                con500_contract_save(con500_contract_exit);
            }
            
            function con500_contract_quote() {
                var root_ds = $('${/model/base_table_path/record/@tab_code}_${/model/base_table_path/record/@base_table}_ds');
                con500_contract_quote_execute(root_ds);
            }
            
            function con500_contract_upload() {
                if (!dynamic_document_id) {
                    Leaf.showMessage('${l:HLS.PROMPT}', '${l:HLS.EXECUTE_AFTER_SAVE}');
                    return;
                } else {
                    var dynamic_base_table = '${/model/base_table_path/record/@base_table}'.toUpperCase();
                    var url = '${/request/@context_path}/uploadFile.lview?table_name=' + dynamic_base_table + '&header_id=' + dynamic_document_id;
                    new Leaf.Window({
                        url: url,
                        title: '${l:HLS.SUPPORTING_DOCUMENT}',
                        id: '${/parameter/@attach_tab_code}_con500_cdd_uploadFile_screen_id',
                        width: 850,
                        height: 400
                    });
                }
            }
        ]]></script>
        <a:freeMarker><![CDATA[
	        	<#if model.getObject("/model/layout_main_button_path").getChilds()??>
	        		<#if model.getObject("/parameter/@tab_tab_code")??>
		        	<#else>
		        		<a:screenTopToolbar>
			        		<#list model.getObject('/model/layout_main_button_path').getChilds() as item>
				        			<#if item.getString('button_code') =='SAVE'>
				        				<a:gridButton click="con500_contract_save" text="${item.getString('prompt')!""}"/>
				        			<#elseif item.getString('button_code') =='EXIT'>
				        				<a:gridButton click="con500_contract_exit" text="${item.getString('prompt')!""}"/>
				        			<#elseif item.getString('button_code') =='SAVE_EXIT'>
				        				<a:gridButton click="con500_contract_save_exit" text="${item.getString('prompt')!""}"/>
				        			<#elseif item.getString('button_code') =='QUOTE'>
				        				<a:gridButton click="con500_contract_quote" text="${item.getString('prompt')!""}"/>
				        			<#elseif item.getString('button_code') =='SUBMIT_APPROVAL'>
				        				<a:gridButton click="con500_contract_submit" text="${item.getString('prompt')!""}"/>
				        			<#elseif item.getString('button_code') =='PRINT'>
				        				<a:gridButton click="function(){con500_contract_print&amp;&amp;con500_contract_print()}" text="${item.getString('prompt')!""}"/>
				        			<#elseif item.getString('button_code') =='UPLOAD'>
				        				<a:gridButton click="con500_contract_upload" text="${item.getString('prompt')!""}"/>
				        			<#else>
				        				<a:gridButton id="${item.getString('button_code')!""}" click="function(btn){con500_define_button&amp;&amp;con500_define_button(btn,$('${model.getObject("/model/base_table_path/record/@tab_code")!""}_${model.getObject("/model/base_table_path/record/@base_table")}_ds'))}" text="${item.getString('prompt')!""}"/>
				        			</#if>
			        		</#list>
		        		</a:screenTopToolbar>
		        	</#if>
	        	</#if>
	        ]]></a:freeMarker>
        <a:screenBody padding="5" style="width:98%">
            <a:placeHolder id="dynamicMain_id"/>
        </a:screenBody>
    </a:view>
    <a:view-config>
        <c:create-config targetId="dynamicMain_id">
            <p:loop source="/model/layout_main_path">
                <p:switch test="@tab_type">
                    <p:case value="FORM">
                        <c:process-config>
                            <a:screen-include screen="modules/cont/CON500/con_contract_update_form.lview?form_tab_code=${@tab_code}&amp;layout_code=${/parameter/@layout_code}&amp;document_id=$c{/parameter/@document_id}&amp;document_category=${/parameter/@document_category}&amp;document_type=$c{/parameter/@document_type}&amp;winid=${/parameter/@winid}&amp;function_code=${/parameter/@function_code}&amp;function_usage=$c{/parameter/@function_usage}&amp;maintain_type=${/parameter/@maintain_type}&amp;calc_type=$c{/parameter/@calc_type}&amp;default_value_dsid=$c{/parameter/@default_value_dsid}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="GRID">
                        <c:process-config>
                            <a:screen-include screen="modules/cont/CON500/con_contract_update_grid.lview?grid_tab_code=${@tab_code}&amp;layout_code=${/parameter/@layout_code}&amp;document_id=$c{/parameter/@document_id}&amp;document_category=${/parameter/@document_category}&amp;document_type=$c{/parameter/@document_type}&amp;winid=${/parameter/@winid}&amp;function_code=${/parameter/@function_code}&amp;function_usage=$c{/parameter/@function_usage}&amp;maintain_type=${/parameter/@maintain_type}&amp;calc_type=$c{/parameter/@calc_type}&amp;default_value_dsid=$c{/parameter/@default_value_dsid}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="TEXTAREA">
                        <c:process-config>
                            <a:screen-include screen="modules/cont/CON500/con_contract_update_textarea.lview?textarea_tab_code=${@tab_code}&amp;layout_code=${/parameter/@layout_code}&amp;document_id=$c{/parameter/@document_id}&amp;document_category=${/parameter/@document_category}&amp;document_type=$c{/parameter/@document_type}&amp;winid=${/parameter/@winid}&amp;function_code=${/parameter/@function_code}&amp;function_usage=$c{/parameter/@function_usage}&amp;maintain_type=${/parameter/@maintain_type}&amp;calc_type=$c{/parameter/@calc_type}&amp;default_value_dsid=$c{/parameter/@default_value_dsid}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="ATTACH">
                        <c:process-config>
                            <a:screen-include screen="modules/cont/CON500/con_contract_update_attach.lview?attach_tab_code=${@tab_code}&amp;layout_code=${/parameter/@layout_code}&amp;document_id=$c{/parameter/@document_id}&amp;document_category=${/parameter/@document_category}&amp;document_type=$c{/parameter/@document_type}&amp;winid=${/parameter/@winid}&amp;function_code=${/parameter/@function_code}&amp;function_usage=$c{/parameter/@function_usage}&amp;maintain_type=${/parameter/@maintain_type}&amp;calc_type=$c{/parameter/@calc_type}&amp;cdd_list_id=$c{/parameter/@cdd_list_id}&amp;default_value_dsid=$c{/parameter/@default_value_dsid}"/>
                        </c:process-config>
                    </p:case>
                    <p:case value="TAB">
                        <c:process-config>
                            <a:screen-include screen="modules/cont/CON500/con_contract_update_tabpanel.lview?tab_group=${@tab_group}&amp;parent_tab_code=${/parameter/@tab_tab_code}&amp;layout_code=${/parameter/@layout_code}&amp;document_id=$c{/parameter/@document_id}&amp;document_category=${/parameter/@document_category}&amp;document_type=$c{/parameter/@document_type}&amp;winid=${/parameter/@winid}&amp;function_code=${/parameter/@function_code}&amp;function_usage=$c{/parameter/@function_usage}&amp;maintain_type=${/parameter/@maintain_type}&amp;calc_type=$c{/parameter/@calc_type}&amp;cdd_list_id=$c{/parameter/@cdd_list_id}&amp;default_value_dsid=$c{/parameter/@default_value_dsid}"/>
                        </c:process-config>
                    </p:case>
                </p:switch>
            </p:loop>
        </c:create-config>
    </a:view-config>
</a:screen>