con_early_termination_create.lview 20.8 KB
Newer Older
Spencer Chang's avatar
Spencer Chang committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365
<?xml version="1.0" encoding="UTF-8"?>
<!--
    $Author: Robert8900
    $Date: 2018-8-13 下午18:14:49
    $Revision: 1.0  
    $Purpose: hlcm中途偿还
-->
<a:screen xmlns:a="http://www.leaf-framework.org/application" xmlns:s="leaf.plugin.script" trace="true">
    <a:view package="leaf.ui.std" template="default">
        <a:link id="con_contract_et_calculate_link" url="${/request/@context_path}/modules/cont/CON701/con_contract_et_calculate.lsc"/>
        <a:link id="con_contract_et_save_link" model="cont.CON701.con_contract_et_save" modelaction="execute"/>
        <a:link id="con_contract_et_submit_link" model="cont.CON701.con_contract_et_submit" modelaction="execute"/>
        <a:link id="attachment_et_link" model="cont.CON701.con_contract_attachment_et" modelaction="update"/>
        <script src="${/request/@context_path}/javascripts/calculate.js" type="text/javascript"/>
        <a:link id="con_contract_status" model="cont.CON702.con_contract_status" modelaction="update"/>
        <div/>
        <script type="text/javascript"><![CDATA[div
            var save_flag = false;
            
            function Screen_exit() {
                $('${/parameter/@winId}').close();
            }
            
            function contractCreateScreen_calculate() {
                var record = $('contractQueryScreen_mainDs').getCurrentRecord(),
                    et_ds = $('early_terminationDs');
                var et_record = et_ds.getAt(0);
                var et_agreement_id;
                if (et_record.data.et_agreement_id){
                    et_agreement_id = et_record.data.et_agreement_id;
                }
                if (record.validateRecord(true)) {
                    var termination_date = Leaf.formatDate(record.get ('termination_date'));
                    var contract_id = record.get('contract_id');
                    //sql里面设定了 et_type = ET
                    var et_type = record.get('et_type');
                    //和后端匹配,控制一种结清方式
                    var et_profile = "PRI_BAL_STD";

                    Leaf.Masker.mask($('${/parameter/@winId}').wrap, '正在处理...');
                    Leaf.request({
                        url: $('con_contract_et_calculate_link').getUrl(),
                        para: {
                            termination_date: termination_date,
                            contract_id: contract_id,
                            et_agreement_id : et_agreement_id,
                            et_type: et_type,
                            et_profile: et_profile
                        },
                        success: function(args) {
                            var et_agreement_id = args.result.et_agreement_id;
                            et_ds.setQueryParameter('et_agreement_id', et_agreement_id);
                            et_ds.query();

                            $('cashflowPlanDs').setQueryParameter('et_agreement_id', et_agreement_id);
                            $('cashflowPlanDs').query();

                            document.getElementById("detail_flag_id").style.display = "";
                            Leaf.Masker.unmask($('${/parameter/@winId}').wrap);
                        },
                        failure: function() {
                            Leaf.Masker.unmask($('${/parameter/@winId}').wrap);
                        },
                        error: function() {
                            Leaf.Masker.unmask($('${/parameter/@winId}').wrap);
                        },
                        scope: this
                    });
                }
            }
            
            function et_save(value) {
                var et_ds = $('early_terminationDs'),
                    et_record = et_ds.getAt(0);
                var et_agreement_id = et_record.get('et_agreement_id');
                if (et_agreement_id) {
                    var deposit_deduction_flag = et_record.get('deposit_deduction_flag');
                    var deposit_by_agent = et_record.get('deposit_by_agent');
                    var ref_n04 = et_record.get('ref_n04');
                    var ref_n05 = et_record.get('ref_n05');

                    var remittance_date = et_record.get('remittance_date');
                    var remittance_amount = et_record.get('remittance_amount');

                    var reduce_period_interest = et_record.get('reduce_period_interest');
                    var reduce_residual_value = et_record.get('reduce_residual_value');

                    var deposit = et_record.get('deposit');
                    var third_party_deposit = et_record.get('third_party_deposit');
                    var note_s = et_record.get('note_s');
                    var cost_reduction = et_record.get('cost_reduction');
                    Leaf.Masker.mask($('${/parameter/@winId}').wrap, '正在处理...');
                    Leaf.request({
                        url: $('con_contract_et_save_link').getUrl(),
                        para: {
                            et_agreement_id: et_agreement_id,
                            deposit_deduction_flag : deposit_deduction_flag,
                            deposit_by_agent:deposit_by_agent,
                            ref_n04: ref_n04,
                            ref_n05: ref_n05,
                            reduce_residual_value:reduce_residual_value,
                            reduce_period_interest:reduce_period_interest,
                            deposit: deposit,
                            third_party_deposit:third_party_deposit,
                            note_s: note_s,
                            cost_reduction: cost_reduction,
                            remittance_date: remittance_date,
                            remittance_amount: remittance_amount
                        },
                        success: function(args) {
                            save_flag = true;
                            if (value == 'sub') {
                                et_submit();
                            } else if (value === 'calc') {
                                contractCreateScreen_calculate();
                            } else {
                                et_ds.setQueryParameter('et_agreement_id', et_agreement_id);
                                et_ds.query();
                                $('cashflowPlanDs').setQueryParameter('et_agreement_id', et_agreement_id);
                                $('cashflowPlanDs').query();
                                Leaf.SideBar.show({
                                    msg: '保存成功',
                                    duration: 2000
                                });
                            }
                             Leaf.Masker.unmask($('${/parameter/@winId}').wrap);
                        },
                        failure: function() {
                            Leaf.Masker.unmask($('${/parameter/@winId}').wrap);
                        },
                        error: function() {
                            Leaf.Masker.unmask($('${/parameter/@winId}').wrap);
                        },
                        scope: this
                    });

                } else {
                    Leaf.showWarningMessage('提示', '请先测算!');
                }
            }

        function post(xml) {
            Leaf.request({
                url: '${/request/@context_path}/doodream/post/url',
                para: {
                    xml: xml
                },
                success: function(res) {
                    window.open(res.message, "", "width=940, height=650, scrollbars=yes, toolbar=no, location=no, status=no, menubar=no");
                    Leaf.SideBar.show({
                        msg: '${l:HLS.SUBMIT_SUCCESS}',
                        duration: 2000
                    });
                },
                failure: function() {
                    Leaf.SideBar.show({
                        msg: 'failure',
                        duration: 2000
                    });
                },
                error: function() {
                    Leaf.SideBar.show({
                        msg: 'error',
                        duration: 2000
                    });
                },
                scope: this
            });
        }

            //调用doodream 审批接口
        function et_submit() {
            var et_ds = $('early_terminationDs'),
                et_record = et_ds.getAt(0);
            var ref_n04 = et_record.get('ref_n04');
            var ref_n05 = et_record.get('ref_n05');
            var int_rate_display = et_record.get('int_rate_display');
            var win = Leaf.showConfirm('${l:HLS.PROMPT}', '确定要提交?', function() {
                Leaf.Masker.mask($('${/parameter/@winId}').wrap, '正在处理...');
                if (ref_n04 == 0 && ref_n05 == 0) {
                    Leaf.request({
                        url: $('con_contract_status').getUrl(),
                        para: {
                            et_agreement_id: et_record.get('et_agreement_id')
                        },
                        success: function (args) {
                            Leaf.showMessage('${l:PROMPT}', '提交成功');
                        },
                        failure: function () {

                        },
                        error: function () {

                        },
                        scope: this,
                        sync: true
                    });
                } else if (et_record) {
                    var et_agreement_id = et_record.get('et_agreement_id');
                    Leaf.request({
                        url: $('con_contract_et_submit_link').getUrl(),
                        para: {
                            et_agreement_id: et_agreement_id
                        },
                        success: function(args) { //
                            //post xml to doodream
                            post(args.result.xml);
                            Leaf.Masker.unmask($('${/parameter/@winId}').wrap);
                        },
                        failure: function() {
                            Leaf.Masker.unmask($('${/parameter/@winId}').wrap);
                        },
                        error: function() {
                            Leaf.Masker.unmask($('${/parameter/@winId}').wrap);
                        },
                        scope: this
                    });
                } else {
                    Leaf.showMessage('提示', '请先测算!');
                    Leaf.Masker.unmask($('${/parameter/@winId}').wrap);
                }
            }, function() {
                Leaf.Masker.unmask($('${/parameter/@winId}').wrap);
            });
            win.addListener('close', function() {
                Leaf.Masker.unmask($('${/parameter/@winId}').wrap);
            });
        }
            
            function et_submit_entrance() {
                et_save();
                var et_ds = $('early_terminationDs'),
                    et_record = et_ds.getAt(0);
                var et_agreement_id = et_record.get('et_agreement_id');
                Leaf.Masker.mask($('${/parameter/@winId}').wrap, '正在处理...');
                Leaf.request({
                    url: $('attachment_et_link').getUrl(),
                    para: {
                        table_name: 'CON_CONTRACT_ET_HD',
                        table_pk_value: et_agreement_id
                    },
                    success: function(res) {
                        var attachment_num = res.result.attachment_num;
                        if (attachment_num == 0) {
                            et_save('sub');
                        } else {
                            et_save('sub');
                        }
                    },
                    failure: function() {
                    },
                    error: function() {
                    },
                    scope: this
                });
            }
            
            function et_calc_entrance() {
                if (save_flag) {
                    et_save('calc');
                } else {
                    contractCreateScreen_calculate();
                }
            }

        ]]></script>
        <a:dataSets>
            <a:dataSet id="deposit_deduction_ds" lookupCode="YES_OR_NO"/>
            <a:dataSet id="early_terminationDs" autoCreate="true" model="cont.CON701.con_contract_et_hd">
                <a:fields>
                    <a:field name="deposit_deduction_flag"/>
                    <a:field name="deposit_deduction_flag_desc" displayField="code_value_name" options="deposit_deduction_ds" returnField="deposit_deduction_flag" valueField="code_value"/>
                    <a:field name="deposit_by_agent"/>
                    <a:field name="deposit_by_agent_n" displayField="code_value_name" options="deposit_deduction_ds" returnField="deposit_by_agent" valueField="code_value"/>
                </a:fields>
            </a:dataSet>
            <a:dataSet id="cashflowPlanDs" autoPageSize="true" model="cont.CON701.contract_et_cashflow_ln">
                <a:fields>
                    <a:field name="due_date" datatype="date"/>
                </a:fields>
            </a:dataSet>
        </a:dataSets>
        <a:screenBody>
            <a:screenTopToolbar>
                <a:gridButton click="Screen_exit" text="关闭"/>
                <a:gridButton click="et_calc_entrance" text="测算"/>
                <a:gridButton click="et_save" text="HLS.SAVE"/>
                <a:gridButton click="et_submit_entrance" text="提交"/>
            </a:screenTopToolbar>
            <a:form column="4" labelWidth="110" marginWidth="30" title="基础信息">
                <a:textField name="contract_number" bindTarget="contractQueryScreen_mainDs" prompt="合同编号" readOnly="true"/>
                <a:textField name="bp_name" bindTarget="contractQueryScreen_mainDs" prompt="承租人名称" readOnly="true"/>
                <a:textField name="bp_agent" bindTarget="contractQueryScreen_mainDs" prompt="代理商名称" readOnly="true"/>
                <a:datePicker name="termination_date" bindTarget="contractQueryScreen_mainDs" prompt="中途偿还基准日期" renderer="Leaf.formatDate"/>
            </a:form>
            <div id="detail_flag_id">
                <a:form title="结清信息">
                    <a:form column="4" labelWidth="110" marginWidth="30">
                        <a:numberField name="undue_principal" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="未到期本金" readOnly="true"/>
                        <a:numberField name="ref_n01" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="逾期本金" readOnly="true"/>
                        <a:numberField name="ref_n02" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="逾期分期手续费" readOnly="true"/>
                        <a:numberField name="ref_n08" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="预付金额" readOnly="true"/>

                        <a:numberField name="ref_n03" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="期间利息" readOnly="true"/>
                        <a:numberField name="ref_n06" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="逾期利息" readOnly="true"/>
                        <a:numberField name="ref_n07" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="未到期分期手续费" readOnly="true"/>
                        <a:numberField name="et_total_amount" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="中途偿还结清总金额" readOnly="true"/>

                        <a:numberField name="et_fee" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="中途偿还手续费" readOnly="true"/>
                        <a:numberField name="penalty" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="罚息" readOnly="true"/>
                        <a:numberField name="residual_value" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="留购金" readOnly="true"/>
                        <a:numberField name="deferred_interest" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="延期利息" readOnly="true"/>

                        <a:numberField name="ref_n05" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="中途偿还手续费减免金额"/>
                        <a:numberField name="ref_n04" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="罚息减免金额"/>
                        <a:numberField name="deposit" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="客户保证金" readOnly="true"/>
                        <a:comboBox name="deposit_deduction_flag_desc" bindTarget="early_terminationDs" prompt="客户保证金是否抵扣"/>

                        <a:numberField name="reduce_period_interest" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="期间利息减免金额" />
                        <a:numberField name="reduce_residual_value" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="留购金减免金额" />
                        <a:numberField name="third_party_deposit" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="代理商代付保证金金额" readOnly="true"/>
                        <a:comboBox name="deposit_by_agent_n" bindTarget="early_terminationDs" prompt="代理商代付保证金是否抵扣" />

                        <a:datePicker name="remittance_date"  bindTarget="early_terminationDs"  prompt="汇款日期" readOnly="false" renderer="Leaf.formatDate"/>
                        <a:numberField name="remittance_amount" allowDecimals="true" allowFormat="true" bindTarget="early_terminationDs" decimalPrecision="2" prompt="汇款金额" readOnly="false"/>

                    </a:form>
                    <a:form column="1" labelWidth="110" marginWidth="30">
                        <a:textArea name="note_s" width="800" bindTarget="early_terminationDs"  prompt="申请原因说明/背景"/>
                        <a:textArea name="cost_reduction" width="800" bindTarget="early_terminationDs"  prompt="费用减免说明"/>
                    </a:form>
                    <a:tabPanel marginHeight="400" marginWidth="30">
                        <a:tabs>
                            <a:tab prompt="资金计划" width="110">
                                <a:grid bindTarget="cashflowPlanDs" marginHeight="430" marginWidth="100" navBar="true">
                                    <a:columns>
                                        <a:column name="times" prompt="期数" align="center"/>
                                        <a:column name="cf_item_n" prompt="现金流类型" align="center"/>
                                        <a:column name="due_date" prompt="预定支付日期" align="center" renderer="Leaf.formatDate"/>
                                        <a:column name="due_amount" align="right" prompt="应收金额" renderer="Leaf.formatMoney"/>
                                        <a:column name="received_amount" align="right" prompt="已收金额" renderer="Leaf.formatMoney"/>
                                        <a:column name="received_principal" align="right" prompt="已收本金" renderer="Leaf.formatMoney"/>
                                        <a:column name="received_interest" align="right" prompt="已收利息" renderer="Leaf.formatMoney"/>
                                        <a:column name="cf_status_n" prompt="现金流状态" align="center"/>
                                    </a:columns>
                                </a:grid>
                            </a:tab>
                        </a:tabs>
                    </a:tabPanel>
                </a:form>
            </div>
        </a:screenBody>
        <script type="text/javascript"><![CDATA[
            Leaf.onReady(init);
            
            function init() {
                var record = $('contractQueryScreen_mainDs').getCurrentRecord();
                record.getField('contract_number').setReadOnly(true);
                record.getField('contract_name').setReadOnly(true);
                record.getField('received_times').setReadOnly(true);
                document.getElementById("detail_flag_id").style.display = "none";
            }
        ]]></script>
    </a:view>
</a:screen>