<?xml version="1.0" encoding="UTF-8"?>
<!--
    $Author: niminmin
    $Date: 2019-10-28 上午11:10:33
    $Revision: 1.0  
    $Purpose:日立为优质客户付租金入账
-->
<a:screen xmlns:a="http://www.leaf-framework.org/application" customizationEnabled="true" trace="true">
    <a:view>
        <a:link id="csh_transaction_receipt_link"
                url="${/request/@context_path}/modules/csh/CSH511/csh_transaction_receipt.lview"/>
        <a:link id="sys_service_welcome_link" url="${/request/@context_path}/welcome.lview"/>
        <a:link id="csh_transaction_receipt_update_link"
                url="${/request/@context_path}/modules/csh/CSH510/csh_transaction_receipt_update.lview"/>
        <a:link id="csh_transaction_receipt_maintain_link"
                url="${/request/@context_path}/modules/csh/CSH1300/csh_refund_entry_detail.lview"/>
        <a:link id="csh510_csh_transaction_batch_update" model="csh.CSH510.csh_transaction_delete"
                modelaction="batch_update"/>
        <a:link id="csh511_csh_transaction_batch_post_link" model="csh.CSH511.csh_transaction_post"
                modelaction="batch_update"/>
        <!--更新收款单据的状态-->
        <a:link id="csh509N_batch_update_confirmed_flag" model="csh.CSH509.query_roles_info"
                modelaction="batch_update"/>
        <a:link id="csh510N_csh_transaction_batch_update_confirmed_flag" model="csh.CSH510.csh_transaction_update"
                modelaction="batch_update"/>
        <a:link id="csh510_csh_transaction_import_link"
                url="${/request/@context_path}/modules/csh/CSH510N/csh_transaction_import.lview"/>
        <script type="text/javascript"><![CDATA[

        //锁表
        function lock_current_window() {
            Leaf.Masker.mask(Ext.getBody(), '${l:HLS.EXECUTING}');
        }

        //解锁
        function unlock_current_window() {
            Leaf.Masker.unmask(Ext.getBody());
        }

        function dateValidator(record, name, value) { //日期校验方法
            if (name == 'transaction_date_from' || name == 'transaction_date_to') {
                var start_date = Leaf.formatDate(record.get('transaction_date_from'));
                var end_date = Leaf.formatDate(record.get('transaction_date_to'));
                if (!!end_date) { //由于结束日期非必填,只有在结束日期填了才进行比较
                    if (!compareDate(start_date, end_date)) {
                        return '${l:CSH510.CSH_RECEIPT_DATE_CHECK}'; //校验不通过返回字符串
                    }
                }
                return true; //校验通过返回true
            }
        }

        function compareDate(start, end) {
            if (start > end) {
                return false;
            }
            return true;
        }

        function cus100_receipt_reset() {
            $('csh_transaction_receipt_maintain_query_ds').reset();
        }

        function cus100_receipt_query() {
            $('csh_transaction_receipt_maintain_result_ds').query();
        }


        function seedetail_transaction_num(value, record, name) {
            if (record.get('transaction_id')) {
                var url;
                url = $('csh_transaction_receipt_maintain_link').getUrl() + '?transaction_id=' + record.get('transaction_id') + '&bp_id=' + record.get('bp_id');
                return '<a href="javascript:openWindow(\'' + url + '\');">' + value + '</a>';
            }
        }

        function openWindow(url) {
            new Leaf.Window({
                id: 'csh_transaction_refund_link_winid',
                params: {
                    winId: 'csh_transaction_refund_link_winid'
                },
                url: url,
                title: '日立为优质客户付租金入账详情',
                fullScreen: true
            }).on('close', function () {
                cus100_receipt_query();
            });
        }

        function construct_from_to() {
            var config = ['transaction_num', 'bank_slip_num', 'transaction_amount', 'currency_code', 'bank_account_code'];
            var pattern = ['_from', '_to'];
            var obj = {};
            for (var i = 0,
                     j = config.length; i < j; i++) {
                for (var m = 0,
                         n = pattern.length; m < n; m++) {
                    obj[config[i] + pattern[m]] = config[i] + pattern[n - 1 - m];
                }
            }
            return obj;
        }

        function csh510_receipt_maintain_update(ds, record, name, value, oldvalue) {
            var from_to = construct_from_to();
            var opposite_name = from_to[name];
            if (!Ext.isEmpty(opposite_name)) {
                var opposite_value = record.get(opposite_name);
                if (!Ext.isEmpty(value) && Ext.isEmpty(opposite_value)) {
                    record.set(opposite_name, value);
                }
            }
        }

        function csh1300_refund_entry() {
            var ds_id = 'csh_transaction_receipt_maintain_result_ds';
            var ds = $(ds_id)
            var record = ds.getSelected()[0];
            var url;
            url = $('csh_transaction_receipt_maintain_link').getUrl() + '?transaction_id=' + record.get('transaction_id') + '&bp_id=' + record.get('bp_id');
            new Leaf.Window({
                id: 'csh_transaction_refund_link_winid',
                params: {
                    winId: 'csh_transaction_refund_link_winid'
                },
                url: url,
                title: '日立为优质客户付租金入账详情',
                fullScreen: true
            }).on('close', function () {
                cus100_receipt_query();
            });
        }

        ]]></script>
        <a:dataSets>
            <a:dataSet id="write_off_flag_ds" lookupCode="WRITE_OFF_FLAG"/>
            <a:dataSet id="bp_category_ds" lookupCode="BP_CATEGORY">
            </a:dataSet>
            <a:dataSet id="confirmed_flag_ds" lookupCode="CONFIRMED_FLAG">
            </a:dataSet>
            <a:dataSet id="payment_method_ds">
                <a:datas dataSource="/model/payment_method_path"/>
            </a:dataSet>
            <a:dataSet id="receipt_type_ds" lookupCode="RECEIPT_TYPE"/>
            <a:dataSet id="currency_ds">
                <a:datas dataSource="/model/currency"/>
            </a:dataSet>
            <a:dataSet id="transaction_type_ds">
                <a:datas dataSource="/model/transaction_type"/>
            </a:dataSet>
            <a:dataSet id="posted_flag_ds" lookupCode="CSH510_POST_SELECT"/>
            <a:dataSet id="ds_collection_classes_ds" lookupCode="DS_COLLECTION_CLASSES"/>
            <a:dataSet id="csh510_collection_classes_batch_update_ds">
                <a:fields>
                    <a:field name="collection_classes_desc" options="ds_collection_classes_ds"
                             displayField="code_value_name" returnField="collection_classes" valueField="code_value"/>

                </a:fields>
            </a:dataSet>
            <a:dataSet id="csh_transaction_receipt_maintain_query_ds" autoCreate="true">
                <a:fields>

                    <a:field name="bank_account_name" autoComplete="true" lovGridHeight="350" lovHeight="550"
                             lovLabelWidth="90" lovService="csh.CSH101.csh_bank_account_lov" lovWidth="850"
                             title="CSH511.BANK_ACCOUNT_CODE">
                        <a:mapping>
                            <a:map from="precision" to="precision"/>
                            <a:map from="zero_amounts_allowed" to="zero_amounts_allowed"/>
                            <a:map from="bank_account_id" to="bank_account_id"/>
                            <a:map from="bank_account_num" to="bank_account_num"/>
                            <a:map from="bank_account_name" to="bank_account_name"/>
                            <a:map from="bank_account_code" to="bank_account_code"/>
                            <a:map from="currency_code" to="currency_code"/>
                            <a:map from="currency_name" to="currency_name"/>
                            <a:map from="bank_account_type" to="bank_account_type"/>
                            <a:map from="bank_account_type_name" to="bank_account_type_name"/>
                            <a:map from="bank_branch_name" to="bank_branch_name"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="bank_branch_name" autoComplete="true" lovGridHeight="350" lovHeight="550"
                             lovLabelWidth="90" lovService="csh.CSH101.csh_bank_account_lov" lovWidth="850"
                             title="CSH511.BANK_ACCOUNT_CODE">
                        <a:mapping>
                            <a:map from="precision" to="precision"/>
                            <a:map from="zero_amounts_allowed" to="zero_amounts_allowed"/>
                            <a:map from="bank_account_id" to="bank_account_id"/>
                            <a:map from="bank_account_num" to="bank_account_num"/>
                            <a:map from="bank_account_name" to="bank_account_name"/>
                            <a:map from="bank_account_code" to="bank_account_code"/>
                            <a:map from="currency_code" to="currency_code"/>
                            <a:map from="currency_name" to="currency_name"/>
                            <a:map from="bank_account_type" to="bank_account_type"/>
                            <a:map from="bank_account_type_name" to="bank_account_type_name"/>
                            <a:map from="bank_branch_name" to="bank_branch_name"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="bank_account_num" autoComplete="true" lovGridHeight="350" lovHeight="550"
                             lovLabelWidth="90" lovService="csh.CSH101.csh_bank_account_lov" lovWidth="850"
                             title="CSH511.BANK_ACCOUNT_CODE">
                        <a:mapping>
                            <a:map from="precision" to="precision"/>
                            <a:map from="zero_amounts_allowed" to="zero_amounts_allowed"/>
                            <a:map from="bank_account_id" to="bank_account_id"/>
                            <a:map from="bank_account_num" to="bank_account_num"/>
                            <a:map from="bank_account_name" to="bank_account_name"/>
                            <a:map from="bank_account_code" to="bank_account_code"/>
                            <a:map from="currency_code" to="currency_code"/>
                            <a:map from="currency_name" to="currency_name"/>
                            <a:map from="bank_account_type" to="bank_account_type"/>
                            <a:map from="bank_account_type_name" to="bank_account_type_name"/>
                            <a:map from="bank_branch_name" to="bank_branch_name"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="confirmed_flag_desc" options="confirmed_flag_ds" valueField="code_value"
                             displayField="code_value_name" returnField="confirmed_flag"/>
                    <a:field name="payment_method_display" displayField="description" options="payment_method_ds"
                             returnField="payment_method_id" valueField="payment_method_id"/>
                    <a:field name="bp_name_from" lovGridHeight="350" lovHeight="500"
                             lovService="basic.hls_bp_master_v_for_lov" lovWidth="500" title="HLS.BP_TITLE">
                        <a:mapping>
                            <a:map from="bp_id" to="bp_id_from"/>
                            <a:map from="bp_name" to="bp_name_from"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="bp_id_from"/>
                    <a:field name="bp_name_to" lovGridHeight="350" lovHeight="500"
                             lovService="basic.hls_bp_master_v_for_lov" lovWidth="500" title="HLS.BP_TITLE">
                        <a:mapping>
                            <a:map from="bp_id" to="bp_id_to"/>
                            <a:map from="bp_name" to="bp_name_to"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="bp_id_to"/>
                    <a:field name="transaction_num_from"/>
                    <a:field name="transaction_num_to"/>
                    <a:field name="bank_slip_num_from"/>
                    <a:field name="bank_slip_num_to"/>
                    <a:field name="transaction_date_from" validator="dateValidator"/>
                    <a:field name="transaction_date_to" validator="dateValidator"/>
                    <a:field name="bank_account_code" autoCompleteField="bank_account_num" lovGridHeight="350"
                             lovHeight="550" lovLabelWidth="90" lovService="csh.CSH101.csh_bank_account_lov"
                             lovWidth="580" title="CSH511.BANK_ACCOUNT_CODE">
                        <a:mapping>
                            <a:map from="bank_account_code" to="bank_account_code"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="bank_account_code_from" autoCompleteField="bank_account_num" lovGridHeight="350"
                             lovHeight="550" lovLabelWidth="90" lovService="csh.CSH101.csh_bank_account_lov"
                             lovWidth="580" title="CSH511.BANK_ACCOUNT_CODE">
                        <a:mapping>
                            <a:map from="bank_account_code" to="bank_account_code_from"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="bank_account_from_id"/>
                    <a:field name="bank_account_code_to" autoComplete="true" autoCompleteField="bank_account_num"
                             lovGridHeight="350" lovHeight="550" lovLabelWidth="90"
                             lovService="csh.CSH101.csh_bank_account_lov" lovWidth="580"
                             title="CSH511.BANK_ACCOUNT_CODE">
                        <a:mapping>
                            <a:map from="bank_account_code" to="bank_account_code_to"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="transaction_amount_from"/>
                    <a:field name="transaction_amount_to"/>
                    <a:field name="posted_flag_display" displayField="code_value_name" options="posted_flag_ds"
                             returnField="posted_flag" valueField="code_value"/>
                    <a:field name="posted_flag"/>
                    <a:field name="period_name" lovGridHeight="300" lovHeight="500" lovService="gld.gld_period_lov"
                             lovWidth="500" title="GLD_PERIODS.PERIOD_NAME">
                        <a:mapping>
                            <a:map from="period_name" to="period_name"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="user_desc" autoComplete="true" lovGridHeight="300" lovHeight="450"
                             lovService="basic.sys_user_for_lov" lovWidth="500" prompt="AUT_TRX_USER_AUTHORIZE.USER_ID"
                             title="员工选择">
                        <a:mapping>
                            <a:map from="description" to="user_desc"/>
                            <a:map from="user_id" to="user_id"/>
                        </a:mapping>
                    </a:field>
                    <a:field name="transaction_type_display" displayField="code_value_name"
                             options="transaction_type_ds" returnField="transaction_type" valueField="code_value"/>
                    <a:field name="currency_name_from_display" displayField="currency_name" options="currency_ds"
                             returnField="currency_code_from" valueField="currency_code"/>
                    <a:field name="currency_code_from"/>
                    <a:field name="currency_name_to_display" displayField="currency_name" options="currency_ds"
                             returnField="currency_code_to" valueField="currency_code"/>
                    <a:field name="currency_code_to"/>
                    <a:field name="transaction_type"/>
                    <a:field name="transaction_category"/>
                    <a:field name="write_off_flag_desc" displayField="code_value_name" options="write_off_flag_ds"
                             returnField="write_off_flag" valueField="code_value"/>
                    <a:field name="not_reversed_flag_r"/>
                    <a:field name="receipt_type"/>
                    <a:field name="receipt_type_des" displayField="code_value_name" options="receipt_type_ds"
                             returnField="receipt_type" valueField="code_value"/>
                    <a:field name="description"/>
                    <a:field name="bp_name" lovGridHeight="350" lovHeight="500"
                             lovService="basic.hls_bp_master_v_for_lov?bp_category=AGENT" lovWidth="500"
                             title="HLS.BP_TITLE">
                        <a:mapping>
                            <a:map from="bp_id" to="bp_id"/>
                            <a:map from="bp_name" to="bp_name"/>
                        </a:mapping>
                    </a:field>

                    <a:field name="collection_classes_n" options="ds_collection_classes_ds"
                             displayField="code_value_name" returnField="collection_classes" valueField="code_value"/>
                </a:fields>
                <a:events>
                    <a:event name="update" handler="csh510_receipt_maintain_update"/>
                </a:events>
            </a:dataSet>
            <a:dataSet id="csh_transaction_receipt_maintain_result_ds" autoPageSize="true" autoQuery="true"
                       model="csh.CSH1300.csh_transaction_miantain_query"
                       queryDataSet="csh_transaction_receipt_maintain_query_ds" selectable="true"
                       selectionModel="single">

            </a:dataSet>
        </a:dataSets>
        <a:screenBody>
            <a:screenTopToolbar>
                <a:screenTitle/>
                <a:gridButton click="csh1300_refund_entry" text="入账" id="csh1300_refund_entry"/>
                <a:gridButton click="cus100_receipt_query" text="HLS.QUERY" id="cus100_receipt_query"/>
                <a:gridButton click="cus100_receipt_reset" text="HLS.RESET"/>
            </a:screenTopToolbar>
            <a:form labelWidth="120" marginWidth="80"
                    title="日立为优质客户付租金入账" style="margin-left:20px">
                <a:hBox>
                    <a:fieldSet column="4" labelWidth="150" title="HLS.QUERY_TITLE">
                        <a:datePicker name="transaction_date_from"
                                      bindTarget="csh_transaction_receipt_maintain_query_ds"
                                      prompt="CSH510.CSH_TRANSACTION.TRANSACTION_DATE_FROM"/>
                        <a:datePicker name="transaction_date_to" bindTarget="csh_transaction_receipt_maintain_query_ds"
                                      prompt="CSH510.CSH_TRANSACTION.TRANSACTION_DATE_TO"/>
                        <a:numberField name="transaction_amount_from"
                                       bindTarget="csh_transaction_receipt_maintain_query_ds"
                                       prompt="CSH510.CSH_TRANSACTION.TRANSACTION_AMOUNT_FROM" align="right"/>
                        <a:numberField name="transaction_amount_to"
                                       bindTarget="csh_transaction_receipt_maintain_query_ds"
                                       prompt="CSH510.CSH_TRANSACTION.TRANSACTION_AMOUNT_TO" align="right"/>
                        <!--我方账户户名-->
                        <a:lov name="bank_account_name" bindTarget="csh_transaction_receipt_maintain_query_ds"
                               prompt="CSH510.CSH_TRANSACTION.MY_ACCOUNT_NAME"/>
                        <a:lov name="bank_branch_name" bindTarget="csh_transaction_receipt_maintain_query_ds"
                               prompt="CSH510.CSH_TRANSACTION.MY_BANK_NAME"/>
                        <a:lov name="bank_account_num" bindTarget="csh_transaction_receipt_maintain_query_ds"
                               prompt="CSH510.CSH_TRANSACTION.MY_ACCOUNT_USERNAME"/>
                        <!--银行流水号-->
                        <a:textField name="bank_slip_num" bindTarget="csh_transaction_receipt_maintain_query_ds"
                                     prompt="CSH510.CSH_TRANSACTION.BANK_CASH_CODE"/>
                        <!--对方账户户名-->
                        <a:textField name="bp_bank_account_name" bindTarget="csh_transaction_receipt_maintain_query_ds"
                                     prompt="CSH510.CSH_TRANSACTION.YOUR_ACCOUNT_NAME"/>
                        <!--对方银行名称-->
                        <a:textField name="opposite_band_na" bindTarget="csh_transaction_receipt_maintain_query_ds"
                                     prompt="CSH510.CSH_TRANSACTION.YOUR_BANK_NAME"/>
                        <!--对方账户账号-->
                        <a:textField name="bp_bank_account_num" bindTarget="csh_transaction_receipt_maintain_query_ds"
                                     prompt="CSH510.CSH_TRANSACTION.YOUR_ACCOUNT_USERNAME"/>
                        <a:lov name="bp_name" bindTarget="csh_transaction_receipt_maintain_query_ds" prompt="代理店"/>
                    </a:fieldSet>
                </a:hBox>
            </a:form>
            <a:fieldSet labelWidth="150" style="margin-left:20px">
                <a:grid id="csh_transaction_receipt_maintain_grid_ds"
                        bindTarget="csh_transaction_receipt_maintain_result_ds" marginHeight="200" marginWidth="80"
                        navBar="true">
                    <a:columns>
                        <a:column name="transaction_num" prompt="CSH510.CSH_TRANSACTION.CSH_TRANSACTION_NUM"
                                  renderer="seedetail_transaction_num" width="110" align="center"/>
                        <a:column name="bp_name" prompt="代理店/厂商/客户" align="center"/>
                        <a:column name="transaction_amount" align="right" prompt="CSH510.CSH_TRANSACTION.RECEIPT_AMOUNT"
                                  width="100" renderer="Leaf.formatMoney"/>
                        <a:column name="transaction_date" renderer="Leaf.formatDate" align="center"/>
                        <a:column name="unwrite_off_amount" prompt="剩余可用金额" align="right" renderer="Leaf.formatMoney"/>
                        <a:column name="bank_slip_num" prompt="CSH510.CSH_TRANSACTION.BANK_CASH_CODE" align="center"
                                  forExport="false"/>
                        <a:column prompt="CSH510.CSH_TRANSACTION.MY_ACCOUNT"/>
                        <a:column prompt="CSH510.CSH_TRANSACTION.ACCOUNT_NAME" name="bank_account_name" align="center"
                                  forExport="false"/>
                        <a:column prompt="CSH510.CSH_TRANSACTION.ACCOUNT_BANK" name="bank_branch_name" align="center"
                                  forExport="false"/>
                        <a:column prompt="CSH510.CSH_TRANSACTION.ACCOUNT_NUM" name="bank_account_num" align="center"
                                  forExport="false"/>
                        <a:column prompt="CSH510.CSH_TRANSACTION.YOUR_ACCOUNT"/>
                        <a:column prompt="CSH510.CSH_TRANSACTION.ACCOUNT_NAME" name="bp_bank_account_name"
                                  align="center" forExport="false"/>
                        <a:column prompt="CSH510.CSH_TRANSACTION.ACCOUNT_BANK" name="opposite_band_na" align="center"
                                  forExport="false"/>
                        <a:column prompt="CSH510.CSH_TRANSACTION.ACCOUNT_NUM" name="bp_bank_account_num" align="center"
                                  forExport="false"/>
                    </a:columns>
                </a:grid>
            </a:fieldSet>
        </a:screenBody>
    </a:view>
</a:screen>