<?xml version="1.0" encoding="UTF-8"?>
<!--
    $Author: LR  
    $Date: 2013-7-17 下午06:22:37  
    $Revision: 1.0  
    $Purpose: 
-->
<a:screen xmlns:a="http://www.leaf-framework.org/application" customizationEnabled="true">
    <a:init-procedure>
        <a:model-query fetchAll="true" model="acr.ACR512.acr_invoice_business_type_list" rootPath="acr310_business_type_list"/>
    </a:init-procedure>
    <a:view>
        <a:link id="acr310_invoice_readonly_page" url="${/request/@context_path}/modules/cont/CON500/con_contract_update.lview"/>
        <a:link id="con_contract_get_layout_code_link_id" model="cont.CON500.con_contract_get_layout_code" modelaction="update"/>
        <a:link id="receipt_print_link" url="${/request/@context_path}/modules/prj/PRJ312/dmegc_emp_loan_cn_print.lview"/>
        <script type="text/javascript"><![CDATA[
            function acr310_invoice_query() {
                $('acr310_invoice_result_ds').query();
            }
            
            function acr310_invoice_reset() {
                $('acr310_invoice_query_ds').reset();
            }
            
            function acr310_formatMoney(value, record, name) {
                return Leaf.formatNumber(value);
            }
            
            function acr310_invoice_query_Onupdate(ds, record, name, value, oldVlaue) {
                if (name == 'document_number_f') {
                    if (Leaf.isEmpty(record.get('document_number_t'))) {
                        record.set('document_number_t', value);
                    }
                } else if (name == 'project_number_f') {
                    if (Leaf.isEmpty(record.get('project_number_t'))) {
                        record.set('project_number_t', value);
                    }
                } else if (name == 'invoice_number_f') {
                    if (Leaf.isEmpty(record.get('invoice_number_t'))) {
                        record.set('invoice_number_t', value);
                    }
                } else if (name == 'contract_number_f') {
                    if (Leaf.isEmpty(record.get('contract_number_t'))) {
                        record.set('contract_number_t', value);
                    }
                } else if (name == 'invoice_bp_code_f') {
                    if (Leaf.isEmpty(record.get('invoice_bp_code_t'))) {
                        record.set('invoice_bp_code_t', value);
                    }
                } else if (name == 'total_amount_f') {
                    if (Leaf.isEmpty(record.get('total_amount_t'))) {
                        record.set('total_amount_t', value);
                    }
                }
            
                if (Ext.isEmpty(record.get('project_number_f')) && Ext.isEmpty(record.get('project_number_t'))) {
                    record.set('query_project_number', '');
                } else {
                    record.set('query_project_number', 'Y');
                }
                if (Ext.isEmpty(record.get('contract_number_f')) && Ext.isEmpty(record.get('contract_number_t'))) {
                    record.set('query_contract_number', '');
                } else {
                    record.set('query_contract_number', 'Y');
                }
            }
            
            function acr310_grid_query(reocrd_id, invoice_hd_id, status) {
                var maintain_type = 'QUERY';
                var currency_reocrd = $('acr310_invoice_result_ds').findById(reocrd_id);
                var param = currency_reocrd.data;
                param['function_code'] = 'ACR513';
                param['document_id'] = invoice_hd_id;
                param['function_usage'] = 'QUERY';
                param['maintain_type'] = maintain_type;
                param['url_title'] = '${l:ACR.INVOICE_DETAIL}';
                hls_doc_get_layout_code('con_contract_get_layout_code_link_id', param, 'acr310_invoice_readonly_page', 'acr310_invoice_result_ds');
            }
            
            
            function acr310_document_number_render(value, record, name) {
                return '<a href="javascript:acr310_grid_query(' + record.id + ',' + record.get('invoice_hd_id') + ',\'' + record.get('invoice_status') + '\');">' + value + '</a>';
            }
            
            function acr513_print_receipt(again_flag) {
                Leaf.Masker.mask(Ext.getBody(), '正在执行...');
                var records = $('acr310_invoice_result_ds').getSelected();
                if (Leaf.isEmpty(records)) {
                    Leaf.showMessage('提示', '请先选择数据');
                    return;
                }
                var instr = '';
                for (var i = 0;i < records.length;i++) {
                    if (records[i].get('invoice_kind') != 'RECEIPT') {
                        Leaf.showMessage('提示', '发票种类不为收据,无法打印!');
                        Leaf.Masker.unmask(Ext.getBody());
                        return;
                    }
                    if (records[i].get('invoice_status') != 'CONFIRM') {
                        Leaf.showMessage('提示', '发票尚未复核,无法打印!');
                        Leaf.Masker.unmask(Ext.getBody());
                        return;
                    }
                    if (again_flag == 'Y' && !records[i].get('receipt_number')) {
                        Leaf.showMessage('提示', '该收据还未打印不能重新打印!');
                        Leaf.Masker.unmask(Ext.getBody());
                        return;
                    }
                    if (again_flag != 'Y' && records[i].get('receipt_number')) {
                        Leaf.showMessage('提示', '已打印收据只能重新打印!');
                        Leaf.Masker.unmask(Ext.getBody());
                        return;
                    }
                    if (i == 0) {
                        instr = instr + records[i].get('invoice_hd_id');
                    } else {
                        instr = instr + ',' + records[i].get('invoice_hd_id');
                    }
                }
            
                // for (var i = 0;i < records.length;i++) {
                // if (i == 0 && i+1==records.length ) {
                // instr = instr + records[i].get('invoice_hd_id');
                // }
                // else if(i == 0 && i+1!=records.length){
                // instr = instr + records[i].get('invoice_hd_id')+'&apos;';
                // }
                // else  if(i!=0 && i+1!=records.length){
                // instr = instr + ',&apos;' + records[i].get('invoice_hd_id')+'&apos;';
                // }
                // else if(i!=0&&i+1==records.length){
                // instr = instr + ',&apos;' + records[i].get('invoice_hd_id');
                // }
                // }
            
                // for (var i = 0;i < records.length;i++) {
                // if (records[i].get('invoice_kind') != 'RECEIPT') {
                // Leaf.showMessage('提示', '发票种类不为收据,无法打印!');
                // return;
                // }
                // if (records[i].get('invoice_status') != 'CONFIRM') {
                // Leaf.showMessage('提示', '发票尚未复核,无法打印!');
                // return;
                // }
                // if (i == 0) {
                // instr = instr + records[i].get('invoice_hd_id') + '&apos;';
                // } else {
                // instr = instr + ',&apos;' + records[i].get('invoice_hd_id') + '&apos;';
                // }
            
                // }
                var url = $('receipt_print_link').getUrl() + '?invoice_hd_id=' + instr + '&step=' + records.length + '&again_flag=' + again_flag;
            
                window.open(url);
                Leaf.Masker.unmask(Ext.getBody());
                // var win=new Leaf.Window({
                // id:'receipt_print_winid',
                // url:$('receipt_print_link').getUrl(),
                // params: {
                // invoice_hd_id:records[0].get('invoice_hd_id')
                // },
                // title:'收据打印',
                // fullScreen:true
                // });
            }
            
            function acr513_print_receipt_again() {
                Leaf.showConfirm('提示', '重新打印收据后收据编号会重新生成,是否确认?', function() {
                    acr513_print_receipt('Y');
                });
            }
            
            window['acr310_link_render'] = function(value, record, 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])) {
                            url = url + '<a href=' + link + temp[1] + '>' + temp[0] + '</a>' + ',';
                        }
                    }
                    return url;
                }
            };
        ]]></script>
        <a:screen-include screen="modules/cont/CON500/con_contract_get_layout_code.lview"/>
        <a:dataSets>
            <a:dataSet id="acr310_business_type_ds">
                <a:datas dataSource="/model/acr310_business_type_list"/>
            </a:dataSet>
            <a:dataSet id="acr310_receipt_print_status_dis_ds">
                <a:datas>
                    <a:record code_value="Y" code_value_name="已打印"/>
                    <a:record code_value="N" code_value_name="未打印"/>
                </a:datas>
            </a:dataSet>
            <a:dataSet id="acr310_invoice_kind_ds" lookupCode="ACR510_INVOICE_KIND"/>
            <a:dataSet id="acr310_invoice_statu_ds" lookupCode="ACR510_AR_INVOICE_STATUS"/>
            <a:dataSet id="acr310_express_status_ds" lookupCode="ACR518_EXPRESS_STATUS"/>
            <a:dataSet id="acr310_vat_interface_status_ds" lookupCode="ACR515_VAT_INTERFACE_STATUS"/>
            <a:dataSet id="acr310_reversed_flag_ds" lookupCode="ACR514_AR_INVOICE_REVERSED_FLAG"/>
            <a:dataSet id="acr310_invoice_query_ds">
                <a:fields>
                    <a:field name="reversed_flag_desc" displayField="code_value_name" options="acr310_reversed_flag_ds" returnField="reversed_flag" valueField="code_value"/>
                    <a:field name="invoice_kind_desc" displayField="code_value_name" options="acr310_invoice_kind_ds" returnField="invoice_kind" valueField="code_value"/>
                    <a:field name="invoice_status_desc" displayField="code_value_name" options="acr310_invoice_statu_ds" returnField="invoice_status" valueField="code_value"/>
                    <a:field name="vat_interface_status_desc" displayField="code_value_name" options="acr310_vat_interface_status_ds" returnField="vat_interface_status" valueField="code_value"/>
                    <a:field name="business_type_desc" displayField="business_type_desc" options="acr310_business_type_ds" returnField="business_type" valueField="business_type"/>
                    <a:field name="created_by_name" lovGridHeight="320" lovHeight="500" lovService="acr.ACR512.acr_invoice_sys_user_lov" lovWidth="500" title="开票人选择">
                        <a:mapping>
                            <a:map from="user_id" to="created_by"/>
                            <a:map from="description" to="created_by_name"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="confirmed_by_name" lovGridHeight="320" lovHeight="500" lovService="acr.ACR512.acr_invoice_sys_user_lov" lovWidth="500" title="复核人选择">
                        <a:mapping>
                            <a:map from="user_id" to="confirmed_by"/>
                            <a:map from="description" to="confirmed_by_name"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="invoice_bp_code_f" lovGridHeight="320" lovHeight="480" lovService="acr.ACR512.acr_invoice_bp_master_list" lovWidth="500" title="客户选择">
                        <a:mapping>
                            <a:map from="bp_code" to="invoice_bp_code_f"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="invoice_bp_code_t" lovGridHeight="320" lovHeight="480" lovService="acr.ACR512.acr_invoice_bp_master_list" lovWidth="500" title="客户选择">
                        <a:mapping>
                            <a:map from="bp_code" to="invoice_bp_code_t"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="project_number_f" lovGridHeight="320" lovHeight="480" lovService="acr.ACR512.acr_invoice_project_list" lovWidth="500" title="项目选择">
                        <a:mapping>
                            <a:map from="project_number" to="project_number_f"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="project_number_t" lovGridHeight="320" lovHeight="480" lovService="acr.ACR512.acr_invoice_project_list" lovWidth="500" title="项目选择">
                        <a:mapping>
                            <a:map from="project_number" to="project_number_t"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="contract_number_f" lovGridHeight="320" lovHeight="480" lovService="acr.ACR512.acr_invoice_contract_list" lovWidth="500" title="合同选择">
                        <a:mapping>
                            <a:map from="contract_number" to="contract_number_f"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="contract_number_t" lovGridHeight="320" lovHeight="480" lovService="acr.ACR512.acr_invoice_contract_list" lovWidth="500" title="合同选择">
                        <a:mapping>
                            <a:map from="contract_number" to="contract_number_t"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="received_flag" checkedValue="Y" defaultValue="N" uncheckedValue="N"/>
                    <a:field name="receipt_print_status_dis" displayField="code_value_name" options="acr310_receipt_print_status_dis_ds" returnField="receipt_print_status" valueField="code_value"/>
                    <a:field name="express_status_desc" displayField="code_value_name" options="acr310_express_status_ds" returnField="express_status" valueField="code_value"/>
                </a:fields>
                <a:events>
                    <a:event name="update" handler="acr310_invoice_query_Onupdate"/>
                </a:events>
            </a:dataSet>
            <a:dataSet id="acr310_invoice_result_ds" autoPageSize="true" autoQuery="true" model="acr.ACR310.acr_invoice_query" queryDataSet="acr310_invoice_query_ds" selectable="true"/>
        </a:dataSets>
        <a:screenBody>
            <a:screenTopToolbar>
                <a:screenTitle/>
                <a:toolbarButton click="acr310_invoice_query" text="HLS.QUERY"/>
                <a:toolbarButton click="acr310_invoice_reset" text="HLS.RESET"/>
                <a:toolbarButton click="acr513_print_receipt" text="收据打印"/>
                <a:toolbarButton click="acr513_print_receipt_again" text="收据重新打印"/>
            </a:screenTopToolbar>
            <a:form marginWidth="30" padding="0" title="ACR.INVOICE_QUERY">
                <a:hBox labelSeparator=" ">
                    <a:textField name="document_number" bindTarget="acr310_invoice_query_ds" prompt="单据编号"/>
                    <a:textField name="document_number_f" bindTarget="acr310_invoice_query_ds" prompt="HLS.DOCUMENT_NUMBER_FROM" width="135"/>
                    <div><![CDATA[${l:HLS.DOCUMENT_NUMBER_TO}]]></div>
                    <a:textField name="document_number_t" bindTarget="acr310_invoice_query_ds" prompt="" width="135"/>
                    <a:lov name="project_number_f" bindTarget="acr310_invoice_query_ds" prompt="HLS.PROJECT_NUMBER_FROM" width="135"/>
                    <div><![CDATA[${l:HLS.PROJECT_NUMBER_TO}]]></div>
                    <a:lov name="project_number_t" bindTarget="acr310_invoice_query_ds" prompt="" width="135"/>
                    <a:comboBox name="business_type_desc" bindTarget="acr310_invoice_query_ds" prompt="HLS.BUSINESS_TYPE_DESC" width="135"/>
                    <a:lov name="created_by_name" bindTarget="acr310_invoice_query_ds" prompt="ACR.CREATED_BY_NAME" width="135"/>
                </a:hBox>
                <a:hBox labelSeparator=" ">
                    <a:textField name="invoice_number_f" bindTarget="acr310_invoice_query_ds" prompt="ACR.INVOICE_NUMBER_FROM" width="135"/>
                    <div><![CDATA[${l:ACR.INVOICE_NUMBER_TO}]]></div>
                    <a:textField name="invoice_number_t" bindTarget="acr310_invoice_query_ds" prompt="" width="135"/>
                    <a:lov name="contract_number_f" bindTarget="acr310_invoice_query_ds" prompt="HLS.CONTRACT_NUMBER_FROM" width="135"/>
                    <div><![CDATA[${l:HLS.CONTRACT_NUMBER_TO}]]></div>
                    <a:lov name="contract_number_t" bindTarget="acr310_invoice_query_ds" prompt="" width="135"/>
                    <a:comboBox name="invoice_kind_desc" bindTarget="acr310_invoice_query_ds" prompt="ACR.INVOICE_KIND" width="135"/>
                    <!-- <a:lov name="confirmed_by_name" bindTarget="acr310_invoice_query_ds" prompt="ACR.CHECKER" width="135"/> -->
                    <a:comboBox name="receipt_print_status_dis" bindTarget="acr310_invoice_query_ds" prompt="是否打印" width="135"/>
                </a:hBox>
                <a:hBox labelSeparator=" ">
                    <a:datePicker name="invoice_date_f" bindTarget="acr310_invoice_query_ds" prompt="ACR.INVOICE_DATE_FROM" width="135"/>
                    <div><![CDATA[${l:ACR.INVOICE_DATE_TO}]]></div>
                    <a:datePicker name="invoice_date_t" bindTarget="acr310_invoice_query_ds" prompt="" width="135"/>
                    <a:lov name="invoice_bp_code_f" bindTarget="acr310_invoice_query_ds" prompt="HLS.CUSTOMER_NUMBER_FROM" width="135"/>
                    <div><![CDATA[${l:HLS.CUSTOMER_NUMBER_TO}]]></div>
                    <a:lov name="invoice_bp_code_t" bindTarget="acr310_invoice_query_ds" prompt="" width="135"/>
                    <a:textField name="invoice_title" bindTarget="acr310_invoice_query_ds" prompt="ACR.INVOICE_TITLE" width="135"/>
                    <a:comboBox name="reversed_flag_desc" bindTarget="acr310_invoice_query_ds" prompt="HLS.REVERSE_FLAG" width="135"/>
                </a:hBox>
                <a:hBox labelSeparator=" ">
                    <a:datePicker name="accounting_date_f" bindTarget="acr310_invoice_query_ds" prompt="HLS.ACCOUNT_DATE_FROM" width="135"/>
                    <div><![CDATA[${l:HLS.ACCOUNT_DATE_TO}]]></div>
                    <a:datePicker name="accounting_date_t" bindTarget="acr310_invoice_query_ds" prompt="" width="135"/>
                    <a:numberField name="total_amount_f" allowFormat="true" bindTarget="acr310_invoice_query_ds" prompt="ACR.TOTAL_AMOUNT_FROM" width="135"/>
                    <div><![CDATA[${l:ACR.TOTAL_AMOUNT_TO}]]></div>
                    <a:numberField name="total_amount_t" allowFormat="true" bindTarget="acr310_invoice_query_ds" prompt="" width="135"/>
                    <a:comboBox name="invoice_status_desc" bindTarget="acr310_invoice_query_ds" prompt="ACR.INVOICE_STATUS" width="135"/>
                    <a:comboBox name="vat_interface_status_desc" bindTarget="acr310_invoice_query_ds" prompt="ACR.VAT_INTERFACE_STATUS_NAME" width="135"/>
                </a:hBox>
            </a:form>
            <a:grid id="acr310_invoice_grid_ds" bindTarget="acr310_invoice_result_ds" marginHeight="260" marginWidth="30" navBar="true">
                <a:toolBar>
                    <a:button type="excel"/>
                </a:toolBar>
                <a:columns>
                    <a:column name="document_number" lock="true" prompt="HLS.DOCUMENT_NUMBER" renderer="acr310_document_number_render" width="120"/>
                    <a:column name="business_type_desc" prompt="HLS.BUSINESS_TYPE_DESC" width="80"/>
                    <a:column name="file_name" prompt="发票附件" renderer="acr310_link_render" width="200"/>
                    <a:column name="invoice_kind_desc" prompt="ACR.INVOICE_KIND" width="100"/>
                    <a:column name="receipt_print_status_des" prompt="收据打印状态" width="100"/>
                    <a:column name="receipt_number" prompt="收据编号" width="100"/>
                    <a:column name="last_receipt_print_time" prompt="最后打印时间" width="100"/>
                    <a:column name="vat_invoice_code" prompt="发票代码" width="100"/>
                    <a:column name="invoice_number" prompt="ACR.INVOICE_NUMBER" width="120"/>
                    <a:column name="invoice_date" prompt="ACR.INVOICE_DATE" width="100"/>
                    <a:column name="invoice_bp_code" prompt="HLS.CUSTOMER_NUMBER" width="120"/>
                    <a:column name="invoice_title" autoAdjust="false" prompt="ACR.INVOICE_TITLE" showTitle="true" width="150"/>
                    <a:column name="total_amount" align="right" prompt="ACR.TOTAL_AMOUNT" renderer="Leaf.formatMoney" width="100"/>
                    <a:column name="currency" prompt="HLS.CURRENCY" width="80"/>
                    <a:column name="created_by_name" autoAdjust="false" prompt="ACR.CREATED_BY_NAME" showTitle="true" width="150"/>
                    <a:column name="confirmed_by_name" autoAdjust="false" prompt="ACR.CHECKER" showTitle="true" width="150"/>
                    <a:column name="invoice_status_desc" prompt="ACR.INVOICE_STATUS" width="100"/>
                    <a:column name="reversed_flag_desc" prompt="HLS.REVERSE_FLAG" width="100"/>
                    <a:column name="vat_interface_status_desc" prompt="ACR.VAT_INTERFACE_STATUS_NAME" width="100"/>
                    <a:column name="accounting_date" prompt="HLS.ACCOUNT_DATE" width="100"/>
                    <a:column name="create_je_flag" align="center" prompt="ACR.CREATE_JE_FLAG" width="60"/>
                    <a:column name="source_document_number" prompt="ACR.SOURCE_DOCUMENT_NUMBER" width="120"/>
                    <a:column name="project_number" prompt="HLS.PROJECT_NUMBER" width="120"/>
                    <a:column name="project_name" autoAdjust="false" prompt="HLS.PROJECT_NAME" showTitle="true" width="150"/>
                    <a:column name="contract_number" prompt="HLS.CONTRACT_NUMBER" width="120"/>
                    <a:column name="contract_name" autoAdjust="false" prompt="HLS.CONTRACT_NAME" showTitle="true" width="150"/>
                    <a:column name="invoice_bp_name" autoAdjust="false" prompt="HLS.CUSTOMER_NAME" showTitle="true" width="150"/>
                </a:columns>
            </a:grid>
        </a:screenBody>
    </a:view>
</a:screen>