315 lines
14 KiB
Plaintext
315 lines
14 KiB
Plaintext
<%@ page contentType="text/html; charset=GBK"%>
|
||
<%@ page import="com.amarsoft.app.lc.workflow.action.GetFlowAction" %>
|
||
<%@ include file="/Frame/resources/include/include_begin_info.jspf"%><%
|
||
/*
|
||
Author: undefined 2017-06-26
|
||
Content: ʾÀýÏêÇéÒ³Ãæ
|
||
History Log:
|
||
*/
|
||
|
||
String flowunid = CurPage.getParameter("FlowUnid");
|
||
String RightType = CurPage.getParameter("RightType");//Ñ¡Ôñģʽ
|
||
String ishistory=CurPage.getParameter("IsHistory");
|
||
String nodeNo=CurPage.getParameter("NodeNo");
|
||
|
||
BizObject condition=JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LC_CALC_CONDITION_TEMP","flowunid=:flowunid").setParameter("flowunid", flowunid).getSingleResult(false);
|
||
String paymentnumber=condition.getAttribute("payment_number").getString();
|
||
String yearrate=condition.getAttribute("YEAR_RATE").getString();
|
||
String contractId=condition.getAttribute("contract_id").getString();
|
||
String cautionmoney = Sqlca.getString("select caution_money from lc_calc_condition where CONTRACT_ID='"+contractId+"'");
|
||
String mayopemoney = Sqlca.getString("select sum(MAYOPE_MONEY) from LC_EBANK_TEMP where flowunid='"+flowunid+"'");
|
||
|
||
BizObject flow=GetFlowAction.getFlowBussinessObject(flowunid);
|
||
String productId=flow.getAttribute("productId").getString();
|
||
String ratio = Sqlca.getString("select EarlySettleBreachRatio from PRD_SPECIFIC_LIBRARY where productid='"+productId+"'");
|
||
System.out.println(ratio+"===================");
|
||
String sTempletNo = "LCContractTerminate";//--Ä£°åºÅ--
|
||
ASObjectModel doTemp = new ASObjectModel(sTempletNo);
|
||
doTemp.setDefaultValue("PAYMENT_NUMBER", paymentnumber);
|
||
doTemp.setHtmlEvent("PAYDAY_ADJUST","onchange","getTerminateInfo");
|
||
doTemp.setHtmlEvent("ADJUST_TYPE","onchange","changeInfo");
|
||
doTemp.setHtmlEvent("OTHER_IN","onchange","changeContract");
|
||
doTemp.setHtmlEvent("REPURCHASE_RATIO","onchange","getRepurchaseMoney");
|
||
ASObjectWindow dwTemp = new ASObjectWindow(CurPage, doTemp,request);
|
||
dwTemp.Style = "2";//freeform
|
||
if((null!=RightType&&RightType.equals("ReadOnly"))||(null!=ishistory&&ishistory.equals("true"))){
|
||
dwTemp.ReadOnly = "-2";//Ö»¶Áģʽ
|
||
isShowButton=false;
|
||
}else{
|
||
isShowButton=true;
|
||
}
|
||
dwTemp.genHTMLObjectWindow(flowunid);
|
||
|
||
String sButtons[][] = {
|
||
{"true","","Button","Ìáǰ½áÇå","Ìáǰ½áÇå","saveRecord()","","","","btn_icon_settle"},
|
||
{"true","","Button","³·Ïú½áÇå","³·Ïú½áÇå","cancelChange()","","","","btn_icon_delete"}
|
||
};
|
||
sButtonPosition = "south";
|
||
%><%@ include file="/Frame/resources/include/ui/include_info.jspf"%>
|
||
<script type="text/javascript">
|
||
function getRepurchaseMoney(){
|
||
var ratio=getItemValue(0,0,"REPURCHASE_RATIO");
|
||
var corpus=getItemValue(0,0,"CORPUS_OVERAGE");
|
||
if(ratio&&corpus){
|
||
setItemValue(0,0,"REPURCHASE_MONEY",Number(ratio*corpus/100).toFixed(6));
|
||
}
|
||
}
|
||
|
||
function getTerminateInfo(){
|
||
var adjusttype = getItemValue(0,0,"ADJUST_TYPE");
|
||
if(adjusttype.length==0){
|
||
alert("ÇëÏÈÑ¡Ôñ±ä¸üÀàÐÍ£¡£¡£¡");
|
||
setItemValue(0,getRow(),"PAYDAY_ADJUST","");
|
||
return;
|
||
}
|
||
//¼ì²éÔ¼¶¨ÖÕÖ¹ÈÕÊÇ·ñºÏ·¨
|
||
var paydayAdjust = getItemValue(0,getRow(),"PAYDAY_ADJUST");
|
||
var result = AsControl.RunJavaMethod("com.tenwa.reckon.executor.RentCalHelper","checkPaydayAdjust","contractId=<%=contractId%>,paymentnumber=<%=paymentnumber%>,paydayAdjust="+paydayAdjust);
|
||
if(result.result != "true"){
|
||
alert(result.msg);
|
||
setItemValue(0,getRow(),"PAYDAY_ADJUST","");
|
||
}else{
|
||
var terminateInfo = AsControl.RunJavaMethod("com.tenwa.reckon.executor.RentCalHelper","getTerminateInfo","contractId=<%=contractId%>,paymentnumber=<%=paymentnumber%>,paydayAdjust="+paydayAdjust);
|
||
var rentPlanDate = AsControl.RunJavaMethod("com.tenwa.reckon.executor.RentCalHelper","rentPlanDate","contractId=<%=contractId%>,paydayAdjust="+paydayAdjust);
|
||
var remaincorpus = terminateInfo.remaincorpus;
|
||
var remaincorpusbreak = terminateInfo.remaincorpusbreak;
|
||
var remaininterest = terminateInfo.remaininterest;
|
||
var overduerent = terminateInfo.overduerent;
|
||
var remainfpenalty = terminateInfo.remainfpenalty;
|
||
var surplusinterest = terminateInfo.remaininterest;
|
||
var sumpenalty = terminateInfo.sumpenalty;
|
||
//ÓâÆÚÀûÏ¢ÔÝʱ¸³ÖµÎª0FIST_RENT
|
||
// setItemValue(0,getRow(),"DUN_PENALTY","0");
|
||
setItemValue(0,getRow(),"DUN_PENALTY",sumpenalty);
|
||
setItemValue(0,getRow(),"AGREED_PENALTY","0");
|
||
//Òѵ½ÆÚ×â½ð
|
||
setItemValue(0,getRow(),"DUN_RENT",overduerent);
|
||
//δµ½ÆÚ±¾½ð
|
||
setItemValue(0,getRow(),"CORPUS_OVERAGE",remaincorpus);
|
||
//δµ½ÆÚÀûÏ¢
|
||
setItemValue(0,getRow(),"INTEREST_HANDLING_CHARGE",remaininterest);
|
||
//É̶¨ÀûϢĬÈϵÈÓÚδµ½ÆÚÀûÏ¢
|
||
setItemValue(0,getRow(),"AGREED_INTEREST",remaininterest);
|
||
//»Ø¹º±ÈÀý ĬÈÏ100
|
||
setItemValue(0,getRow(),"REPURCHASE_RATIO","100");
|
||
//»Ø¹º±¾½ð
|
||
setItemValue(0,getRow(),"REPURCHASE_MONEY",remaincorpus);
|
||
setItemValue(0,getRow(),"FIST_RENT",terminateInfo.fist_rent);
|
||
setItemValue(0,getRow(),"FIST_CORPUS","0");
|
||
|
||
var ratio=0;
|
||
if("<%=ratio%>"==""||"<%=ratio%>"==null||"<%=ratio%>"=="null"){
|
||
ratio = 0.05;
|
||
}else{
|
||
ratio = (Number("<%=ratio%>")/100).toFixed(2);
|
||
}
|
||
|
||
setItemValue(0,getRow(),"HANDLING_CHARGE",Math.round(Number(remaincorpusbreak*ratio)*100)/100);
|
||
var dateRate=Number("<%=yearrate%>")/100;//»ñÈ¡ÀûÂÊ
|
||
// var sDate1 = getItemValue(0,getRow(),"PAYDAY_DATE");//»ñÈ¡Ìá³öÈÕÆÚ
|
||
var idays = datedifference(rentPlanDate,paydayAdjust);//»ñȡԼ¶¨ÖÕÖ¹ÈÕºÍÌá³öÈÕÆÚÏà²îÌìÊý
|
||
var REPAYMENT=((Number(remaincorpus)*dateRate)/360)*Number(idays);//¼ÆË㻹¿îÈÕÏ¢²î
|
||
setItemValue(0,getRow(),"REPAYMENT_INTEREST",REPAYMENT);
|
||
setItemValue(0,getRow(),"AGREED_DATEPENALTY","0");
|
||
setItemValue(0,getRow(),"SDNOMINAL_PRICE","0");
|
||
setItemValue(0,getRow(),"SDHANDLING_CHARGE","0");
|
||
setItemValue(0,getRow(),"OTHER_OUT","<%=cautionmoney%>");
|
||
setItemValue(0,getRow(),"SURPLUSINTEREST",surplusinterest);
|
||
|
||
//¼ÆËãºÏͬծȯ×ܼÆ
|
||
// setItemValue(0,getRow(),"CONTRACT_TOTAL",getContractBondTotal());
|
||
if(adjusttype=="02"){
|
||
var fessMoney = AsControl.RunJavaMethod("com.tenwa.reckon.executor.RentCalHelper","getLcCarDispose","contractId=<%=contractId%>");
|
||
if(fessMoney.length>0){
|
||
var fessMoneys = fessMoney.split("@");
|
||
setItemValue(0,getRow(),"COLLECT_FEES",fessMoneys[0]);
|
||
setItemValue(0,getRow(),"DISPOSE_MONEY",fessMoneys[1]);
|
||
}else{
|
||
setItemValue(0,getRow(),"COLLECT_FEES","0.00");
|
||
setItemValue(0,getRow(),"DISPOSE_MONEY","0.00");
|
||
}
|
||
setItemValue(0,getRow(),"GUARANTEEMONEY","<%=cautionmoney%>");
|
||
setItemValue(0,getRow(),"CONTRACT_TOTAL",parseFloat(getItemValue(0,getRow(),"DUN_RENT"))+parseFloat(getItemValue(0,getRow(),"COLLECT_FEES"))+parseFloat(remaincorpus));
|
||
}else{
|
||
setItemValue(0,getRow(),"OTHER_IN","0.00");
|
||
setItemValue(0,getRow(),"CONTRACT_TOTAL",Number(overduerent)+Number(remainfpenalty)+Number(remaincorpus)+Number(terminateInfo.fist_rent)+Number(remaincorpus*0.05)+Number(getItemValue(0,getRow(),"OTHER_IN"))+Number(getItemValue(0,getRow(),"NOMINAL_PRICE"))-Number(getItemValue(0,getRow(),"OTHER_OUT")).toFixed(2)+REPAYMENT);
|
||
}
|
||
}
|
||
}
|
||
//¼ÆËãծȯ×ܼÆ
|
||
function getContractBondTotal(){
|
||
var dunrent = getItemValue(0,getRow(),"DUN_RENT");
|
||
var dunPenalty = getItemValue(0,getRow(),"DUN_PENALTY");
|
||
var corpusOverage = getItemValue(0,getRow(),"CORPUS_OVERAGE");
|
||
var fistRent = getItemValue(0,getRow(),"FIST_RENT");
|
||
var handlingCharge = getItemValue(0,getRow(),"HANDLING_CHARGE");
|
||
var otherin = getItemValue(0,getRow(),"OTHER_IN");
|
||
var otherout = getItemValue(0,getRow(),"OTHER_OUT");
|
||
var nominalPrice=getItemValue(0,getRow(),"NOMINAL_PRICE");
|
||
return Number(dunrent ? dunrent : 0 ) + Number(dunPenalty ? dunPenalty : 0 ) + Number(corpusOverage ? corpusOverage : 0 )
|
||
+ Number(fistRent ? fistRent : 0 ) + Number(handlingCharge ? handlingCharge : 0 ) + Number(otherin ? otherin : 0 )
|
||
- Number(otherout ? otherout : 0 ) + Number(nominalPrice ? nominalPrice : 0 ) ;
|
||
}
|
||
|
||
|
||
//¼ÆËãծȯ×ܼÆ
|
||
function updateContractBondTotal(){
|
||
var dunrent = getItemValue(0,getRow(),"DUN_RENT");
|
||
var agreedPenalty = getItemValue(0,getRow(),"AGREED_PENALTY");
|
||
var corpusOverage = getItemValue(0,getRow(),"CORPUS_OVERAGE");
|
||
var fistCorpus = getItemValue(0,getRow(),"FIST_CORPUS");
|
||
var sdhandlingCharge = getItemValue(0,getRow(),"SDHANDLING_CHARGE");
|
||
var otherin = getItemValue(0,getRow(),"OTHER_IN");
|
||
var otherout = getItemValue(0,getRow(),"OTHER_OUT");
|
||
var sdnominalPrice=getItemValue(0,getRow(),"SDNOMINAL_PRICE");
|
||
var agreeddatepenalty=getItemValue(0,getRow(),"AGREED_DATEPENALTY");
|
||
return (Number(dunrent ? dunrent : 0 ) + Number(agreedPenalty ? agreedPenalty : 0 ) + Number(corpusOverage ? corpusOverage : 0 )
|
||
+ Number(fistCorpus ? fistCorpus : 0 ) + Number(sdhandlingCharge ? sdhandlingCharge : 0 ) + Number(otherin ? otherin : 0 )
|
||
- Number(otherout ? otherout : 0 ) + Number(sdnominalPrice ? sdnominalPrice : 0 ) +Number(agreeddatepenalty ? agreeddatepenalty : 0 )).toFixed(2);
|
||
}
|
||
//¼ÆËãծȯ×ܼÆ
|
||
/* function getContractBondTotal(){
|
||
var dunrent = getItemValue(0,getRow(),"DUN_RENT");
|
||
var corpusoverage = getItemValue(0,getRow(),"CORPUS_OVERAGE");
|
||
var corpusinterest = 0;
|
||
var agreedinterest = getItemValue(0,getRow(),"AGREED_INTEREST");
|
||
var agreepenalty = getItemValue(0,getRow(),"AGREED_PENALTY");
|
||
var dunpenalty = getItemValue(0,getRow(),"DUN_PENALTY");
|
||
var otherin = getItemValue(0,getRow(),"OTHER_IN");
|
||
var otherout = getItemValue(0,getRow(),"OTHER_OUT");
|
||
return Number(otherin ? otherin : 0 ) - Number(otherout ? otherout : 0 ) + Number(dunrent ? dunrent : 0 )
|
||
+ Number(corpusoverage ? corpusoverage : 0 ) + Number(corpusinterest ? corpusinterest : 0 ) + Number(agreedinterest ? agreedinterest : 0 )
|
||
+ Number(agreepenalty ? agreepenalty : 0 ) + Number(dunpenalty ? dunpenalty : 0 ) ;
|
||
} */
|
||
|
||
function cancelChange(){
|
||
openDWDialog();
|
||
setTimeout(function(){
|
||
var message = AsControl.RunJavaMethodTrans("com.tenwa.reckon.executor.CreateTransactionExecutor","cancelRentChange","flowunid=<%=flowunid%>,plannumber=<%=paymentnumber%>,contractId=<%=contractId%>");
|
||
if(message == 'true'){
|
||
resetDWDialog("ÖÐ;ÖÕÖ¹³·Ïú³É¹¦£¡£¡£¡",true);
|
||
window.location.href=window.location.href;
|
||
}else{
|
||
resetDWDialog("δ½øÐйýÖÐ;ÖÕÖ¹µÄ²Ù×÷£¡ÇëÏȽøÐкÏͬÖÐ;ÖÕÖ¹£¡£¡£¡",true);
|
||
}
|
||
}, 500);
|
||
}
|
||
//±£´æÊý¾Ý
|
||
function saveRecord(sPostEvents)
|
||
{
|
||
//¼ì²éÊÇ·ñ½øÐйý±ä¸ü
|
||
var result = AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","checkIsRentChange","flowunid=<%=flowunid%>,plannumber=<%=paymentnumber%>");
|
||
if(result == 'true'){
|
||
var adjusttype = getItemValue(0,0,"ADJUST_TYPE");
|
||
if("01"==adjusttype){
|
||
setItemValue(0,getRow(),"MAXIMUM_TOTAL",updateContractBondTotal());
|
||
var maximumtotal = updateContractBondTotal();
|
||
if(Number(maximumtotal)>Number(<%=mayopemoney%>)){
|
||
alert('×îÖÕ»¹¿î½ð¶î´óÓÚÍøÒøºËÏú½ð¶î£¡£¡£¡');
|
||
return;
|
||
}
|
||
//¸üÐÂlc_ebank_tempÖеÄÖµ
|
||
var mage = AsControl.RunJavaMethodTrans("com.tenwa.reckon.executor.CreateTransactionExecutor","updateEbank","flowunid=<%=flowunid%>,cleanLeasemoney="+maximumtotal);
|
||
if("Success"!=mage){
|
||
alert('Ìáǰ½áÇåʧ°Ü£¡£¡£¡');
|
||
return;
|
||
}
|
||
}else{
|
||
var contractTotal = getItemValue(0,0,"CONTRACT_TOTAL");
|
||
if(Number(contractTotal)>Number(<%=mayopemoney%>)){
|
||
alert('×îÖÕ»¹¿î½ð¶î´óÓÚÍøÒøºËÏú½ð¶î£¡£¡£¡');
|
||
return;
|
||
}
|
||
//¸üÐÂlc_ebank_tempÖеÄÖµ
|
||
var mage = AsControl.RunJavaMethodTrans("com.tenwa.reckon.executor.CreateTransactionExecutor","updateEbank","flowunid=<%=flowunid%>,cleanLeasemoney="+contractTotal);
|
||
if("Success"!=mage){
|
||
alert('Ìáǰ½áÇåʧ°Ü£¡£¡£¡');
|
||
return;
|
||
}
|
||
}
|
||
as_save("myiframe0","run()");
|
||
|
||
}else{
|
||
alert('ÇëÏȳ·Ïú±ä¸ü£¬ÔÙ½øÐбä¸ü²Ù×÷£¡£¡£¡');
|
||
}
|
||
}
|
||
|
||
function run()
|
||
{
|
||
AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","runTerminate","flowunid=<%=flowunid%>,plannumber=<%=paymentnumber%>,productId=<%=productId%>,calType=pay_process");
|
||
}
|
||
|
||
|
||
jQuery(function(){
|
||
setItemValue(0,0,"flowunid","<%=flowunid%>");
|
||
setItemValue(0,0,"PAYDAY_DATE","<%=StringFunction.getToday()%>");
|
||
//ÉèÖÃÉ̶¨·£Ï¢´ø³öÓâÆÚ·£Ï¢
|
||
//setItemValue(0,0,"AGREED_PENALTY",getItemValue(0,0,'DUN_PENALTY'));
|
||
//ÅÐ¶ÏÆäËûÓ¦ÊÕºÍÆäËûÓ¦ÍËÊÇ·ñΪ¿Õ
|
||
var otherIn = getItemValue(0,getRow(),"OTHER_IN");
|
||
var otherOut = getItemValue(0,getRow(),"OTHER_OUT");
|
||
if(!otherIn && !otherOut){
|
||
//ÆäËûÓ¦ÊÕºÍÆäËûÓ¦ÍË
|
||
var result = AsControl.RunJavaMethod("com.tenwa.reckon.executor.RentCalHelper","getTerminateOtherInfoFinish","contractId=<%=contractId%>,paymentnumber=<%=paymentnumber%>");
|
||
for(var p in result){
|
||
if(result[p]!=null){
|
||
setItemValue(0,getRow(),p,result[p]);
|
||
}
|
||
}
|
||
}
|
||
changeInfo();
|
||
|
||
});
|
||
|
||
function changeInfo(){
|
||
var adjusttype = getItemValue(0,0,"ADJUST_TYPE");
|
||
if(adjusttype=="02"){
|
||
$("#A_div_1698").attr("style","display:block;");
|
||
$("#A_div_1896").attr("style","display:block;");
|
||
$("#A_div_2094").attr("style","display:block;");
|
||
$("#A_div_2712").attr("style","display:block;");
|
||
$("#A_div_1061").attr("style","display:none;");
|
||
$("#A_div_1062").attr("style","display:none;");
|
||
$("#A_div_1303").attr("style","display:none;");
|
||
$("#A_div_1302").attr("style","display:none;");
|
||
$("#A_div_1064").attr("style","display:none;");
|
||
$("#A_div_1065").attr("style","display:none;");
|
||
$("#A_div_2506").attr("style","display:none;");
|
||
}else{
|
||
$("#A_div_1698").attr("style","display:none;");
|
||
$("#A_div_1896").attr("style","display:none;");
|
||
$("#A_div_2094").attr("style","display:none;");
|
||
$("#A_div_2712").attr("style","display:none;");
|
||
$("#A_div_1061").attr("style","display:block;");
|
||
$("#A_div_1062").attr("style","display:block;");
|
||
$("#A_div_1303").attr("style","display:block;");
|
||
$("#A_div_1302").attr("style","display:block;");
|
||
$("#A_div_1064").attr("style","display:block;");
|
||
$("#A_div_1065").attr("style","display:block;");
|
||
$("#A_div_2506").attr("style","display:block;");
|
||
}
|
||
var ID = getItemValue(0,0,"ID");
|
||
if(typeof(ID) == "undefined" || ID.length == 0){
|
||
var paydayadjust = getItemValue(0,0,"PAYDAY_ADJUST");
|
||
if(!(typeof(paydayadjust) == "undefined" || paydayadjust.length == 0)){
|
||
getTerminateInfo();
|
||
}
|
||
}
|
||
}
|
||
function changeContract(){
|
||
setItemValue(0,0,"CONTRACT_TOTAL",(Number(getItemValue(0,getRow(),"CONTRACT_TOTAL"))+Number(getItemValue(0,getRow(),"OTHER_IN"))).toFixed(2));
|
||
}
|
||
|
||
function datedifference(sDate1, sDate2) {
|
||
var dateSpan,
|
||
tempDate,
|
||
iDays;
|
||
sDate1 = Date.parse(sDate1);
|
||
sDate2 = Date.parse(sDate2);
|
||
dateSpan = sDate2 - sDate1;
|
||
dateSpan = Math.abs(dateSpan);
|
||
iDays = Math.floor(dateSpan / (24 * 3600 * 1000));
|
||
return iDays
|
||
};
|
||
</script>
|
||
<%@ include file="/Frame/resources/include/include_end.jspf"%> |