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

424 lines
17 KiB
Plaintext
Raw Permalink 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 import="com.amarsoft.app.accounting.config.impl.CashFlowConfig"%>
<%@page import="com.amarsoft.app.base.config.impl.BusinessComponentConfig"%>
<%@page import="com.amarsoft.app.base.util.DateHelper"%>
<%@page import="com.amarsoft.app.base.businessobject.BusinessObjectHelper"%>
<%@page import="com.amarsoft.app.base.businessobject.BusinessObject"%>
<%@ page contentType="text/html; charset=GBK"%>
<%@ include file="/Frame/resources/include/include_begin_info.jspf"%>
<%-- <script type="text/javascript" src="<%=sWebRootPath%>/Accounting/LoanSimulation/js/DataUtil.js"></script> --%>
<%
String sTempletNo = "LoanSimulationBasicInfoChange";//--模板号--
String RightType= CurPage.getParameter("RightType");
ASObjectModel doTemp = new ASObjectModel(sTempletNo);
String docId = CurPage.getParameter("flow_unid");
String contractId = CurPage.getParameter("contractId");
if(docId == null){
docId = "100000";
}
String calType = CurPage.getParameter("calType");
if(calType == null){
calType = "proj_process";
}
doTemp.setHtmlEvent("SETTLE_METHOD", "onchange", "changeSettleMethod");
CurPage.getCurComp().setAttribute("RightType", null);
ASObjectWindow dwTemp = new ASObjectWindow(CurPage, doTemp,request);
String ishistory=CurPage.getParameter("IsHistory");
String nodeNo=CurPage.getParameter("NodeNo");
if(null!=ishistory&&ishistory.equals("true")){
doTemp.setDataQueryClass("com.tenwa.flow.flowHistory.FlowDataInfoHistory");//如果是历史则新显示历史数据
}
if((null!=RightType&&RightType.equals("ReadOnly"))||(null!=ishistory&&ishistory.equals("true"))){
dwTemp.ReadOnly = "-2";//只读模式
isShowButton=false;
}else{
isShowButton=true;
}
dwTemp.Style = "2";//freeform
//dwTemp.ReadOnly = "-2";//只读模式
dwTemp.genHTMLObjectWindow(docId);
CurPage.getCurComp().setAttribute("RightType", RightType);//
//字段显示子页面
for (int i = 0; i < dwTemp.getDataObject().Columns.size(); ++i){
ASColumn column = (ASColumn) dwTemp.getDataObject().Columns.get(i);
String htmlStyle = column.getAttribute("ColHTMLStyle");
if(!StringX.isEmpty(htmlStyle) && htmlStyle.indexOf("iframe") > -1)
{
String name = column.getAttribute("ColName");
dwTemp.replaceColumn(name, htmlStyle, CurPage.getObjectWindowOutput());
}
}
String compClientID = request.getParameter("CompClientID");
dwTemp.replaceColumn("condition_plan", "<iframe type='iframe' id='frame_list' name=\"frame_list\" width=\"100%\" height=\"600px\" frameborder=\"0\" src=\""+sWebRootPath+"/Accounting/LoanSimulation_change/condition_plan.jsp?CompClientID="+compClientID+"&docId="+docId+"&contractId="+contractId+"&IsHistory="+ishistory+"&NodeNo="+nodeNo+"&calType="+calType+"\"></iframe>", CurPage.getObjectWindowOutput());
dwTemp.replaceColumn("knowing_config", "<iframe type='iframe' id='frame_list_knowing' name=\"frame_list_knowing\" width=\"100%\" height=\"200px\" frameborder=\"0\" src=\""+sWebRootPath+"/Accounting/LoanSimulation_common/KnowConfigList.jsp?CompClientID="+compClientID+"&docId="+docId+"&IsHistory="+IsHistory+"&NodeNo="+nodeNo+"&calType="+calType+"\"></iframe>", CurPage.getObjectWindowOutput());
String businessDate = DateHelper.getBusinessDate();
String sButtons[][] = {
//{"true","All","Button","重置","重置","reloadSelf()","","","",""},
{"true","All","Button","租金测算","租金测算","saveRecord()","","","",""}
};
%><%@ include file="/Frame/resources/include/ui/include_info.jspf"%>
<script type="text/javascript">
$(function(){
$("#INCOME_NUMBER").keyup(function(){
var val = $("#INCOME_NUMBER").val();
if(val.indexOf("-")!=-1){
alert("此处不能输入负数!");
$("#INCOME_NUMBER").val(val.replace("-",""));
lsaseTerm();
}
});
});
var count = 0;
function saveRecord(sPostEvents){
//设备款大于0
var equipAmt = getItemValue(0,getRow(),"EQUIP_AMT");
if(!equipAmt || Number(equipAmt) <= 0){
alert('设备款需大于0 ');
return ;
}
//已知本金已知租金,判断保存后的租金和本地是否跟净融资额匹配?
var rentOrRate = getItemValue(0,getRow(),"RENT_OR_RATE");
var cleanLeaseMoney = getItemValue(0,getRow(),"CLEAN_LEASE_MONEY");
var equipEndValue = getItemValue(0,getRow(),"EQUIP_END_VALUE");
if(rentOrRate.indexOf('knowing') > -1){
var result = AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","checkKnowingConfig","docId=<%=docId%>,rentOrRate="+rentOrRate+",cleanLeasemoney="+cleanLeaseMoney+",equipEndValue="+equipEndValue);
if(result){
alert(result);
return;
}
}
as_save("myiframe0","run()");
}
function ValidityCheck(){
return true;
}
function run()
{
var result = AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","run","docId=<%=docId%>,calType=<%=calType%>");
document.all("frame_list").src = document.all("frame_list").src;
if(result.info){
for(var p in result.info){
setItemValue(0,getRow(),p.toUpperCase(),result.info[p]);
}
}
}
//租金推算方法
function rentOrRateChange(){
var rentOrRate = getItemValue(0,getRow(),"RENT_OR_RATE");
document.all("A_Group_calc_config").style.display="none";
setEnable('INCOME_NUMBER');
if(rentOrRate == 'rate'){
setEnable('RATE_FLOAT_TYPE');
}else if(rentOrRate == 'rent'){
setItemValue(0,getRow(),"RATE_FLOAT_TYPE","fixed");
setDisable('RATE_FLOAT_TYPE');
if(getItemValue(0,getRow(),"SETTLE_METHOD") == 'even_corpus'){
setItemValue(0,getRow(),"SETTLE_METHOD","even_rent");
}
}else if(rentOrRate == 'knowing_rent'){
setItemValue(0,getRow(),"RATE_FLOAT_TYPE","fixed");
setDisable('RATE_FLOAT_TYPE');
document.all("A_Group_calc_config").style.display="block";
setItemValue(0,getRow(),"SETTLE_METHOD","even_rent");
//还租次数只读
setDisable('INCOME_NUMBER');
}else if(rentOrRate== 'knowing_corpus'){
setEnable('RATE_FLOAT_TYPE');
setItemValue(0,getRow(),"SETTLE_METHOD","even_corpus");
document.all("A_Group_calc_config").style.display="block";
setDisable('INCOME_NUMBER');
}
document.all("frame_list_knowing").src = document.all("frame_list_knowing").src;
RATTermID();
if(count > 0){
AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","runDelteKnowing","docId=<%=docId%>");
setItemValue(0,getRow(),"RENT_OR_RATE_VALUE","0");
setItemValue(0,getRow(),"YEAR_RATE","0");
}
}
<%-- function rentOrRateChange(){
var rentOrRate = getItemValue(0,getRow(),"RENT_OR_RATE");
document.all("A_Group_calc_config").style.display="none";
setEnable('INCOME_NUMBER');
if(rentOrRate == 'rent'){
setItemValue(0,getRow(),"RATE_FLOAT_TYPE","fixed");
if(getItemValue(0,getRow(),"SETTLE_METHOD") == 'even_corpus'){
setItemValue(0,getRow(),"SETTLE_METHOD","even_rent");
}
}else if(rentOrRate == 'knowing_rent'){
document.all("A_Group_calc_config").style.display="block";
setItemValue(0,getRow(),"SETTLE_METHOD","even_rent");
//还租次数只读
setDisable('INCOME_NUMBER');
}else if(rentOrRate== 'knowing_corpus'){
setItemValue(0,getRow(),"SETTLE_METHOD","even_corpus");
document.all("A_Group_calc_config").style.display="block";
setDisable('INCOME_NUMBER');
}
document.all("frame_list_knowing").src = document.all("frame_list_knowing").src;
RATTermID();
if(count > 0){
AsControl.RunJavaMethod("com.tenwa.reckon.executor.CreateTransactionExecutor","runDelteKnowing","docId=<%=docId%>");
setItemValue(0,getRow(),"RENT_OR_RATE_VALUE","0");
setItemValue(0,getRow(),"YEAR_RATE","0");
}
} --%>
//根据起始日期和贷款月数得到贷款结束日期
function getMaturityDate(){
var putoutDate = getItemValue(0,getRow(),"PutoutDate");
var term = getItemValue(0,getRow(),"LoanTerm");
if(typeof(putoutDate) == "undefined" ||putoutDate==null||putoutDate=="") return;
if(typeof(term) == "undefined" ||term==null||term=="") return;
var maturityDate = AsControl.RunJavaMethod("com.amarsoft.acct.accounting.web.DateCal","getRelativeDate","date="+putoutDate+",termUnit=M"+",term="+term);
setItemValue(0,getRow(),"MaturityDate",maturityDate);
}
//计算租赁期限
function lsaseTerm(){
var INCOME_NUMBER_YEAR = getItemValue(0,getRow(),"INCOME_NUMBER_YEAR").replace("income_","");//还款间隔
var INCOME_NUMBER = getItemValue(0,getRow(),"INCOME_NUMBER");//还款次数
var grace = getItemValue(0,getRow(),"GRACE");
setItemValue(0,getRow(),"LEASE_TERM",INCOME_NUMBER_YEAR* (Number(INCOME_NUMBER) + Number(grace)));
}
//根据金额算比例
function getRatioByMoney(){
var equipMoney = getItemValue(0,getRow(),"EQUIP_AMT");//设备款
var FirstPayment = getItemValue(0,getRow(),"FIRST_PAYMENT");//首付款
var cautionMoney = getItemValue(0,getRow(),"CAUTION_MONEY");//保证金
var handleMoney = getItemValue(0,getRow(),"HANDLING_CHARGE_MONEY");//手续费
var manageMoney = getItemValue(0,getRow(),"MANAGEMENT_MONEY");//管理费
setItemValue(0,getRow(),"FIRST_PAYMENT_RATIO",Number(FirstPayment/equipMoney*100).toFixed(6));
setItemValue(0,getRow(),"CAUTION_DEDUCTION_RATIO",Number(cautionMoney/equipMoney*100).toFixed(6));
setItemValue(0,getRow(),"HANDLING_CHARGE_MONEY_RATIO",Number(handleMoney/equipMoney*100).toFixed(6));
setItemValue(0,getRow(),"MANAGEMENT_MONEY_RATIO",Number(manageMoney/equipMoney*100).toFixed(6));
cleanLeaseMoney();
}
//保险计算方式事件
function insureMoneyTypeChange(){
var sResult = getItemValue(0,getRow(),"INSURE_MONEY_TYPE");
if("insure_type1"==sResult){
setItemValue(0,0,"INSURANCE_LESSEE","0");
setEnable('insurance_lessor');
setDisable('INSURANCE_LESSEE');
return;
}else if("insure_type3"==sResult){
setItemValue(0,0,"insurance_lessor","0");
setEnable('INSURANCE_LESSEE');
setDisable('insurance_lessor');
return;
}else{
setItemValue(0,0,"insurance_lessor","0");
setItemValue(0,0,"INSURANCE_LESSEE","0");
setDisable('INSURANCE_LESSEE');
setDisable('insurance_lessor');
return;
}
}
//保险费计算
function sumInsureMoneyTwo(){
var payment = getItemValue(0,getRow(),"insurance_lessor");
var income = getItemValue(0,getRow(),"INSURANCE_LESSEE");
setItemValue(0,0,"INSURE_MONEY",Number(payment)+Number(income));
if(!getItemValue(0,getRow(),"INSURE_MONEY")){
setItemValue(0,0,"INSURE_MONEY","0");
}
}
//保证金事件
function cautionMoney(){
var cautionMoney = getItemValue(0,getRow(),"CAUTION_MONEY");//保证金
var equipMoney = getItemValue(0,getRow(),"EQUIP_AMT");//设备款
var cautionDeductionMoney = cautionMoney;//保证金抵扣
setItemValue(0,0,"CAUTION_DEDUCTION_MONEY",cautionDeductionMoney);
setItemValue(0,getRow(),"CAUTION_DEDUCTION_RATIO",Number(cautionMoney/equipMoney*100).toFixed(6));
var cautionMoneyRemain=Number(cautionMoney)-Number(cautionDeductionMoney);//保证金退还
if(cautionMoneyRemain<0){
setItemValue(0,0,"CAUTION_DEDUCTION_MONEY",cautionMoney);
alert("保证金退还金额填写过大!");
return;
}else{
setItemValue(0,0,"CAUTION_MONEY_REMAIN",cautionMoneyRemain);
}
if(!getItemValue(0,getRow(),"CAUTION_MONEY_REMAIN")){
setItemValue(0,0,"CAUTION_MONEY_REMAIN","0");
}
}
//保证金抵扣事件
function cautionDeductionMoney(){
var cautionMoney = getItemValue(0,getRow(),"CAUTION_MONEY");//保证金
var cautionDeductionMoney = getItemValue(0,getRow(),"CAUTION_DEDUCTION_MONEY");//保证金抵扣
var cautionMoneyRemain=Number(cautionMoney)-Number(cautionDeductionMoney);//保证金退还
if(cautionMoneyRemain<0){
setItemValue(0,0,"CAUTION_DEDUCTION_MONEY",cautionMoney);
setItemValue(0,0,"CAUTION_MONEY_REMAIN","0");
alert("保证金退还金额填写过大!");
return;
}else{
setItemValue(0,0,"CAUTION_MONEY_REMAIN",cautionMoneyRemain);
}
if(!getItemValue(0,getRow(),"CAUTION_MONEY_REMAIN")){
setItemValue(0,0,"CAUTION_MONEY_REMAIN","0");
}
}
//计算融资额
function cleanLeaseMoney(){
var equipMoney = getItemValue(0,getRow(),"EQUIP_AMT");//设备款
var FirstPayment = getItemValue(0,getRow(),"FIRST_PAYMENT");//首付款
setItemValue(0,0,"CLEAN_LEASE_MONEY",Number(equipMoney)-Number(FirstPayment));
}
function getValues(){
var values = {};
for(var i=0;i<DisplayFields[0].length;i++){
values[DisplayFields[0][i]] = getItemValue(0,getRow(),DisplayFields[0][i]);
}
return JSON.stringify(values);
}
//利率计算方式 联动 控制基准利率 利率调整值 年利率
function RATTermID(){
var rateway = getItemValue(0,getRow(),"RATE_FLOAT_TYPE");//利率计算方式
if(rateway=="fixed"){
setItemValue(0,0,"BASE_RATE","0");
setItemValue(0,0,"RATE_FLOAT_AMT","0");
setDisable('BASE_RATE');
setDisable('RATE_FLOAT_AMT');
setEnable('RENT_OR_RATE_VALUE');
}else{
setItemValue(0,0,"YEAR_RATE","0");
setItemValue(0,0,"RENT_OR_RATE_VALUE","0");
setDisable('RENT_OR_RATE_VALUE');
setEnable('BASE_RATE');
setEnable('RATE_FLOAT_AMT');
}
baserate();
}
function rentOrRateValueChange(){
//按租金计算年利率的年利率置为0
var rentOrRent = getItemValue(0,getRow(),"RENT_OR_RATE");
var rentOrRentValue = getItemValue(0,getRow(),"RENT_OR_RATE_VALUE");
var rateFloatType = getItemValue(0,getRow(),"RATE_FLOAT_TYPE");
if(rentOrRent == 'rent' || rentOrRent == 'knowing_rent' || rateFloatType == 'fixed'){
setItemValue(0,0,"YEAR_RATE",rentOrRentValue);
}
}
/* function rentOrRateValueChange(){
//按租金计算年利率的年利率置为0
var rentOrRent = getItemValue(0,getRow(),"RENT_OR_RATE");
var rentOrRentValue = getItemValue(0,getRow(),"RENT_OR_RATE_VALUE");
if(rentOrRent == 'rate' || rentOrRent == 'knowing_corpus'){
setItemValue(0,0,"YEAR_RATE",rentOrRentValue);
}
} */
function baserate(){
var rateway = getItemValue(0,getRow(),"RATE_FLOAT_TYPE");//利率计算方式
var baserate = getItemValue(0,getRow(),"BASE_RATE");//利率计算方式
var ratefloatamt = getItemValue(0,getRow(),"RATE_FLOAT_AMT");//利率计算方式
var rate="";
if(rateway=="add"){
rate=Number(baserate)+Number(ratefloatamt);
}else if(rateway=="proportion"){
rate=Number(baserate)*(1+Number(ratefloatamt));
}
if(rateway != 'fixed'){
setItemValue(0,0,"YEAR_RATE",rate);
}
}
function periodChange(flag){
periodChangeGrace();
if(count > 0){
changeDate(getItemValue(0,getRow(),"LEASE_AMT_DATE"));
}
}
function leaseamtDateChange(){
var leaseAmtDate = getItemValue(0,getRow(),"LEASE_AMT_DATE");//投放日
var startDate = getItemValue(0,getRow(),"START_DATE");//投放日
var firstPlanDate = getItemValue(0,getRow(),"FIRST_PLAN_DATE");//第二期租金支付日
var secondPlanDate = getItemValue(0,getRow(),"SECOND_PLAN_DATE");//第二期租金支付日
if(!startDate && !firstPlanDate && !secondPlanDate){
changeDate(leaseAmtDate);
}
}
function changeDate(leaseAmtDate){
var incomenumberyear = Number(getItemValue(0,getRow(),"INCOME_NUMBER_YEAR").replace("income_",""));
var periodType = getItemValue(0,getRow(),"PERIOD_TYPE");
setItemValue(0,0,"START_DATE",leaseAmtDate);
if("period_type_1" == periodType){
setItemValue(0,0,"FIRST_PLAN_DATE",leaseAmtDate);
setItemValue(0,0,"SECOND_PLAN_DATE",dateAdd('m',incomenumberyear,new Date(leaseAmtDate)).format('yyyy\/MM\/dd'));
}else{
changedate = dateAdd('m',incomenumberyear,new Date(leaseAmtDate));
setItemValue(0,0,"FIRST_PLAN_DATE",changedate.format('yyyy\/MM\/dd'));
setItemValue(0,0,"SECOND_PLAN_DATE",dateAdd('m',incomenumberyear,new Date(changedate)).format('yyyy\/MM\/dd'));
}
}
function periodChangeGrace(){
var periodType = getItemValue(0,getRow(),"PERIOD_TYPE");
if(periodType == 'period_type_1'){
setDisable("GRACE");
setItemValue(0,0,"GRACE","0");
lsaseTerm();
}else{
setEnable("GRACE");
}
}
function dateAdd(strInterval, num, date){
date = arguments[2] || new Date();
switch (strInterval) {
case 's' :return new Date(date.getTime() + (1000 * num));
case 'n' :return new Date(date.getTime() + (60000 * num));
case 'h' :return new Date(date.getTime() + (3600000 * num));
case 'd' :return new Date(date.getTime() + (86400000 * num));
case 'w' :return new Date(date.getTime() + ((86400000 * 7) * num));
case 'm' :return new Date(date.getFullYear(), (date.getMonth()) + num, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());
case 'y' :return new Date((date.getFullYear() + num), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());
}
}
$(function(){
insureMoneyTypeChange();
RATTermID();
periodChangeGrace();
setItemValue(0,0,"flow_unid",<%=docId%>);
rentOrRateChange();
periodChange();
count++;
});
document.all("A_Group_calc_config").style.display="none";
function setEnable(id){
setItemDisabled(0,getRow(),id,false);
getObj(0,id).style.backgroundColor="";
}
function setDisable(id){
setItemDisabled(0,getRow(),id,true);
getObj(0,id).style.backgroundColor="#EBEBE4";
}
function changeSettleMethod(){
var method=getItemValue(0,getRow(),"SETTLE_METHOD");
var button = document.getElementById("InfoButtonArea").getElementsByTagName('a')[0];
if(method == 'irregular_rent'){
button.title = '保存';
button.childNodes[2].childNodes[1].innerText = '保存';
}else{
button.title = '租金测算';
button.childNodes[2].childNodes[1].innerText = '租金测算';
}
var param="CompClientID=<%=compClientID%>&docId=<%=docId%>&IsHistory=<%=ishistory%>&NodeNo=<%=nodeNo%>&calType=<%=calType%>&method="+method;
AsControl.OpenView("/Accounting/LoanSimulation/condition_plan.jsp",param, "frame_list");
}
</script>
<%@ include file="/Frame/resources/include/include_end.jspf"%>