323 lines
15 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ 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 nominalPrice=condition.getAttribute("NOMINAL_PRICE").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(),"NOMINAL_PRICE","<%=nominalPrice%>");
var otherIn = getItemValue(0,getRow(),"OTHER_IN");
setItemValue(0,getRow(),otherIn==""?"0.00":otherIn);
//¼ÆËãºÏͬծȯ×ܼÆ
// 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{
var HandlingCharge = getItemValue(0, 0, "HANDLING_CHARGE");
//setItemValue(0,getRow(),"OTHER_IN","0.00");
setItemValue(0,getRow(),"CONTRACT_TOTAL",Number(overduerent)+Number(sumpenalty)+Number(remaincorpus)+Number(terminateInfo.fist_rent)+Number(HandlingCharge)+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%>");
var payday_date = getItemValue(0,getRow(),"PAYDAY_DATE");
if(""==payday_date || "undefined"==payday_date || null == payday_date){
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(){
getTerminateInfo();
// 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"%>