2018-06-03 22:26:41 +08:00

173 lines
6.3 KiB
JavaScript

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));
}