var aheadPaymentCalcFlag = true;//控制是否需要贷款提前还款计算 var aheadPaymentScheFlag = false;//控制是否需要贷款进行还款计划测算 /*~[Describe=保存前校验方法;InputParam=无;OutPutParam=无;]~*/ function beforeSave(){ var transDate = getItemValue(0,getRow(),"TransDate"); if(transDate < businessDate){ alert("生效日期不能早于当前日期"); return false; } var prePayAmt = getItemValue(0,getRow(),"PrePayAmt"); var PrePayType = getItemValue(0,getRow(),"PrePayType"); if(parseFloat(prePayAmt)<=0 && PrePayType != "3"){//不是全部提前还款 alert("还款总金额不能小于等于0"); setItemValue(0,getRow(),"PrePayAmt",0); return false; } //校验账号必输 var payAccountNo = getItemValue(0,getRow(),"PayAccountNo"); if(typeof(payAccountNo)=="undefined"||payAccountNo.length==0){ alert("必须引入还款账号!"); return false; } return true; } /*~[Describe=保存后续逻辑;InputParam=无;OutPutParam=无;]~*/ function afterSave(){ if(aheadPaymentCalcFlag) { AsDialog.PopView("/Accounting/Transaction/AheadPaymentConsult.jsp","TransactionSerialNo="+transactionSerialNo,"dialogWidth=500px;dialogHeight=380px;",function(apcs){ apcs = top.returnValue; if(typeof(apcs) != "undefined" && apcs.length != 0) { var prePayAmt = apcs.split("@")[0]; var prePayPrincipalAmt = apcs.split("@")[1]; var prePayInterestAmt = apcs.split("@")[2]; var prePayPenaltyAMT = apcs.split("@")[3]; var waivePrePayPenaltyAMT = apcs.split("@")[4]; var actualPrePayPenaltyAMT = apcs.split("@")[5]; var PrePayFeeAMT = apcs.split("@")[6]; setItemValue(0,0,"PrePayAmt",prePayAmt); setItemValue(0,0,"PrePayPrincipalAmt",prePayPrincipalAmt); setItemValue(0,0,"PrePayInterestAmt",prePayInterestAmt); setItemValue(0,0,"PrePayPenaltyAMT",prePayPenaltyAMT); setItemValue(0,0,"WaivePrePayPenaltyAMT",waivePrePayPenaltyAMT); setItemValue(0,0,"ActualPrePayPenaltyAMT",actualPrePayPenaltyAMT); setItemValue(0,0,"PrePayFeeAMT",PrePayFeeAMT); CalcActualPrePayPenaltyAMT(); } ViewPrepaymentConsult(); }); }else{ ViewPrepaymentConsult(); } } function ViewPrepaymentConsult(){ if(aheadPaymentScheFlag) { AsDialog.PopView("/Accounting/Transaction/ViewPrepaymentConsult.jsp","ToInheritObj=y&TransSerialNo="+transactionSerialNo,"",function(){ aheadPaymentScheFlag = false; changePrepayType(); }); } changePrepayType(); } /*~[Describe=根据提前还款咨询;InputParam=后续事件;OutPutParam=无;]~*/ function repayConsult(){ var prePayAmt = getItemValue(0,getRow(),"PrePayAmt"); /*var transStatus = getItemValue(0,getRow(),"TransStatus"); if(typeof(transStatus)=="undefined"||transStatus.length==0 || transStatus !="0"){ alert("此笔交易状态不是待提交,不允许试算!"); return; }*/ aheadPaymentCalcFlag = true; saveRecord("afterSave();"); } /*~[Describe=还款计划测算;InputParam=无;OutPutParam=无;]~*/ function viewConsult(){ aheadPaymentScheFlag = true; saveRecord("afterSave();"); } /*~[Describe=初始化;InputParam=无;OutPutParam=无;]~*/ function initRow(){ setItemValue(0,getRow(),"INPUTUSERID",curUserID); setItemValue(0,getRow(),"INPUTUSERNAME",curUserName); setItemValue(0,getRow(),"INPUTORGID",curOrgID); setItemValue(0,getRow(),"INPUTORGNAME",curOrgName); setItemValue(0,getRow(),"INPUTDATE",businessDate); setItemValue(0,getRow(),"UPDATEUSERID",curUserID); setItemValue(0,getRow(),"UPDATEUSERNAME",curUserName); setItemValue(0,getRow(),"UPDATEORGID",curOrgID); setItemValue(0,getRow(),"UPDATEORGNAME",curOrgName); setItemValue(0,getRow(),"UPDATEDATE",businessDate); var WaivePrePayPenaltyAMT = getItemValue(0,getRow(),"WaivePrePayPenaltyAMT"); if(WaivePrePayPenaltyAMT == null || typeof(WaivePrePayPenaltyAMT) == "undefined" || WaivePrePayPenaltyAMT == ""){ setItemValue(0,getRow(),"WaivePrePayPenaltyAMT","0.0"); setItemValue(0,getRow(),"ActualPrePayPenaltyAMT",getItemValue(0,getRow(),"PrePayPenaltyAMT")); } setValue("TransDate",businessDate); changePrepayType(); changeCashOnlineFlag(); } /*~[Describe=根据提前还款方式不同触发该事件;InputParam=后续事件;OutPutParam=无;]~*/ function changePrepayType(){ var normalBalance = getItemValue(0,getRow(),"NormalBalance"); var overdueBalance = getItemValue(0,getRow(),"OverdueBalance"); var prePayType = getItemValue(0,0,"PrePayType"); if(typeof(prePayType)=="undefined" || prePayType.length==0){ return; } if(rightType!='ReadOnly'){ if(prePayType == "3"){ setItemValue(0,0,"PrePayAmtFlag","1"); setItemDisabled(0,0,"PrePayAmtFlag",true); setItemValue(0,0,"PrePayAmt",(parseFloat(normalBalance))); setItemDisabled(0,0,"PrePayAmt",true); setItemValue(0,0,"PrepayInterestBaseFlag","2"); setItemValue(0,0,"PrepayInterestDaysFlag","1"); setItemDisabled(0,0,"PrepayInterestDaysFlag",true); setItemDisabled(0,0,"PrepayInterestBaseFlag",true); }else{ var prepayInterestDaysFlag = getItemValue(0,0,"PrepayInterestDaysFlag"); if(typeof(prepayInterestDaysFlag)=="undefined" || prepayInterestDaysFlag.length==0){ return; }else if(prepayInterestDaysFlag=="3"){ setItemValue(0,0,"PrepayInterestBaseFlag","1"); setItemValue(0,0,"PrePayAmtFlag","1"); setItemDisabled(0,0,"PrepayInterestBaseFlag",true); setItemDisabled(0,0,"PrePayAmtFlag",true); }else{ setItemDisabled(0,0,"PrePayAmtFlag",false); setItemDisabled(0,0,"PrePayAmt",false); setItemDisabled(0,0,"PrepayInterestBaseFlag",false); setItemDisabled(0,0,"PrepayInterestDaysFlag",false); } } } } /*~[Describe=计算实际违约金;InputParam=无;OutPutParam=无;]~*/ function CalcActualPrePayPenaltyAMT(){ var PrePayPenaltyAMT = getItemValue(0,getRow(),"PrePayPenaltyAMT"); if(PrePayPenaltyAMT == null || typeof(PrePayPenaltyAMT) == "undefined") PrePayPenaltyAMT = 0.0; var WaivePrePayPenaltyAMT = getItemValue(0,getRow(),"WaivePrePayPenaltyAMT"); if(WaivePrePayPenaltyAMT == null || typeof(WaivePrePayPenaltyAMT) == "undefined") WaivePrePayPenaltyAMT = 0.0; if(WaivePrePayPenaltyAMT < 0 && Math.abs(WaivePrePayPenaltyAMT) > PrePayPenaltyAMT){ alert("调整违约金金额不能大于应还违约金金额"); setItemValue(0,0,"WaivePrePayPenaltyAMT","0.0"); setItemValue(0,0,"ActualPrePayPenaltyAMT",getItemValue(0,getRow(),"PrePayPenaltyAMT")); return; } if(Number(PrePayPenaltyAMT)+Number(WaivePrePayPenaltyAMT) == 0) setItemValue(0,0,"ActualPrePayPenaltyAMT","0.0"); else setItemValue(0,0,"ActualPrePayPenaltyAMT",Number(PrePayPenaltyAMT)+Number(WaivePrePayPenaltyAMT)); }