319 lines
12 KiB
Plaintext
319 lines
12 KiB
Plaintext
<%@ page contentType="text/html; charset=GBK"%>
|
||
<%@ include file="/Accounting/include_accounting.jspf"%>
|
||
<%@ include file="/Frame/resources/include/include_begin_list.jspf"%>
|
||
|
||
<%
|
||
String PG_TITLE = "列表信息"; // 浏览器窗口标题 <title> PG_TITLE </title>
|
||
//获取参数
|
||
String objectType = CurPage.getParameter("ObjectType");//对象类型
|
||
String objectNo = CurPage.getParameter("ObjectNo");//对象编号
|
||
String termID = CurPage.getParameter("TermID");//组件ID
|
||
String status = CurPage.getParameter("Status");//状态
|
||
if(status == null) status = "";
|
||
|
||
BusinessObjectManager bomanager = BusinessObjectManager.createBusinessObjectManager();
|
||
BusinessObject businessObject= bomanager.keyLoadBusinessObject(objectType,objectNo);
|
||
if(businessObject==null){
|
||
throw new Exception("未取到业务主对象ObjectType="+objectType+",ObjectNo="+objectNo+",请检查!");
|
||
}
|
||
|
||
BusinessObject loan = bomanager.keyLoadBusinessObject(businessObject.getString("ObjectType"), businessObject.getString("ObjectNo"));
|
||
if(StringX.isEmpty(termID))
|
||
{
|
||
List<BusinessObject> ratList = bomanager.loadBusinessObjects(BUSINESSOBJECT_CONSTANTS.loan_rate_segment, "ObjectType=:ObjectType and ObjectNo=:ObjectNo and RateType='01' and Status in(:Status)",
|
||
"ObjectType",objectType,"ObjectNo",objectNo,"Status",status.split(","));
|
||
if(ratList != null && !ratList.isEmpty())
|
||
{
|
||
termID = ratList.get(0).getString("TermID");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
List<BusinessObject> ratList = bomanager.loadBusinessObjects(BUSINESSOBJECT_CONSTANTS.loan_rate_segment, "ObjectType=:ObjectType and ObjectNo=:ObjectNo and RateType='01' and TermID<>:TermID and Status in(:Status)",
|
||
"ObjectType",objectType,"ObjectNo",objectNo,"TermID",termID,"Status",status.split(","));
|
||
bomanager.deleteBusinessObjects(ratList);
|
||
bomanager.updateDB();
|
||
}
|
||
|
||
ASObjectModel doTemp = new ASObjectModel("RATSegmentList");
|
||
//利率选择项
|
||
List<BusinessObject> ratList = com.amarsoft.app.als.prd.config.loader.ProductConfig.getBusinessTypeConfig(loan.getString("BusinessType")).getBusinessObjectsBySql(BusinessComponentConfig.BUSINESS_COMPONENT, "Type='PRD0302'");
|
||
if(ratList == null || ratList.isEmpty()) ratList = BusinessComponentConfig.getComponents("Type='PRD0302'");
|
||
BusinessObjectHelper.sortBusinessObject(ratList, "ID");
|
||
String ratCodeTable="";
|
||
for(BusinessObject rat:ratList)
|
||
{
|
||
if(StringX.isEmpty(ratCodeTable)) ratCodeTable+= rat.getString("ID")+","+rat.getString("Name");
|
||
else ratCodeTable+= ","+rat.getString("ID")+","+rat.getString("Name");
|
||
}
|
||
doTemp.setDDDWCodeTable("TermID", ratCodeTable);
|
||
doTemp.setDefaultValue("TermID", termID);
|
||
|
||
|
||
StringBuffer sb = new StringBuffer();
|
||
BusinessObject map = BusinessObject.createBusinessObject();
|
||
if(!StringX.isEmpty(termID))
|
||
{
|
||
String segRPTCodeTable="";
|
||
BusinessObject rptComponent = BusinessComponentConfig.getComponent(termID);
|
||
List<BusinessObject> childrenComponents = rptComponent.getBusinessObjects(BusinessComponentConfig.BUSINESS_COMPONENT_CHILDRENCOMPONENT);
|
||
for(BusinessObject childrenComponent:childrenComponents)
|
||
{
|
||
if(StringX.isEmpty(segRPTCodeTable)) segRPTCodeTable+= childrenComponent.getString("ID")+","+childrenComponent.getString("Name");
|
||
else segRPTCodeTable+= ","+childrenComponent.getString("ID")+","+childrenComponent.getString("Name");
|
||
|
||
sb.append(" if(!olddata[getRow()]) olddata[getRow()]={}; \r\n");
|
||
sb.append(" var segTermID = getItemValue(0,getRow(),'SegTermID'); \r\n");
|
||
sb.append(" if(segTermID == '"+childrenComponent.getString("ID")+"'){ \r\n");
|
||
|
||
List<BusinessObject> parameters = childrenComponent.getBusinessObjects(BusinessComponentConfig.BUSINESS_PARAMETER);
|
||
for(BusinessObject parameter:parameters)
|
||
{
|
||
BusinessObject parameterDefine = BusinessComponentConfig.getParameterDefinition(parameter.getString("PARAMETERID"));
|
||
String apermission = parameter.getString("ARIGHTTYPE");
|
||
if("Required".equalsIgnoreCase(apermission)){
|
||
sb.append(" document.all('INPUT_myiframe0_"+parameter.getString("PARAMETERID")+"_'+getRow()+'_'+getColumnIndex('"+parameter.getString("PARAMETERID")+"')).disabled=false; \r\n");
|
||
doTemp.setRequired(parameter.getString("PARAMETERID"), true);
|
||
doTemp.setVisible(parameter.getString("PARAMETERID"), true);
|
||
}
|
||
else if("ReadOnly".equalsIgnoreCase(apermission)){
|
||
sb.append(" document.all('INPUT_myiframe0_"+parameter.getString("PARAMETERID")+"_'+getRow()+'_'+getColumnIndex('"+parameter.getString("PARAMETERID")+"')).disabled=true; \r\n");
|
||
sb.append(" setItemValue(0,getRow(),'"+parameter.getString("PARAMETERID")+"',''); \r\n");
|
||
doTemp.setVisible(parameter.getString("PARAMETERID"), true);
|
||
}
|
||
else if("Hide".equalsIgnoreCase(apermission)){
|
||
doTemp.setRequired(parameter.getString("PARAMETERID"), false);
|
||
doTemp.setVisible(parameter.getString("PARAMETERID"), false);
|
||
}
|
||
else{
|
||
doTemp.setVisible(parameter.getString("PARAMETERID"), true);
|
||
}
|
||
|
||
|
||
String valueList = parameter.getString("OPTIONALVALUE");
|
||
String valueListName = parameter.getString("OPTIONALVALUENAME");
|
||
if(!StringX.isEmpty(valueList))
|
||
{
|
||
String str = map.getString(parameter.getString("PARAMETERID"));
|
||
if(StringX.isEmpty(str)) str = "";
|
||
String[] values = valueList.split(",");
|
||
String[] valueNames = valueListName.split(",");
|
||
String codeTable = "";
|
||
for(int i = 0; i < values.length; i ++)
|
||
{
|
||
if(str.indexOf(values[i]+",") > -1) continue;//如果代码已经存在直接跳过
|
||
if(StringX.isEmpty(codeTable)) codeTable+=values[i]+","+valueNames[i];
|
||
else codeTable+=","+values[i]+","+valueNames[i];
|
||
}
|
||
|
||
sb.append(" var value = getItemValue(0,getRow(),'"+parameter.getString("PARAMETERID")+"'); \r\n");
|
||
sb.append(" if('"+valueList+"'.indexOf(value) == -1){alert('录入值不符合要求,请重新录入。');setItemValue(0,getRow(),'"+parameter.getString("PARAMETERID")+"',''); };");
|
||
|
||
if(StringX.isEmpty(str))
|
||
{
|
||
map.setAttributeValue(parameter.getString("PARAMETERID"),codeTable);
|
||
}
|
||
else if(!StringX.isEmpty(codeTable))
|
||
{
|
||
map.setAttributeValue(parameter.getString("PARAMETERID"),str+","+codeTable);
|
||
}
|
||
}
|
||
|
||
String defaultValue = parameter.getString("Value");
|
||
if(!StringX.isEmpty(defaultValue))
|
||
{
|
||
sb.append(" setItemValue(0,getRow(),'"+parameter.getString("PARAMETERID")+"','"+defaultValue+"'); \r\n");
|
||
sb.append(" olddata[getRow()]['"+parameter.getString("PARAMETERID").toUpperCase()+"'] = '"+defaultValue+"';\r\n");
|
||
doTemp.setDefaultValue(parameter.getString("PARAMETERID"), defaultValue);
|
||
}
|
||
}
|
||
|
||
sb.append(" } \r\n");
|
||
}
|
||
doTemp.setDDDWCodeTable("SegTermID", segRPTCodeTable);
|
||
|
||
|
||
for(String key:map.getAttributeIDArray())
|
||
{
|
||
doTemp.setDDDWCodeTable(key, map.getString(key));
|
||
}
|
||
}
|
||
doTemp.setDefaultValue("ObjectType", objectType);
|
||
doTemp.setDefaultValue("ObjectNo", objectNo);
|
||
|
||
//获取贷款基本信息
|
||
String currency = "";
|
||
String putoutDate = "";
|
||
String maturityDate = "";
|
||
int yearDays = 360;
|
||
if(loan!=null)
|
||
{
|
||
currency = loan.getString("currency");
|
||
putoutDate = loan.getString("PutOutDate");
|
||
maturityDate = loan.getString("MaturityDate");
|
||
yearDays = CashFlowHelper.getYearBaseDay(loan);
|
||
}
|
||
|
||
doTemp.appendJboWhere(" and O.Status in('"+status.replaceAll(",","','")+"')");
|
||
ASObjectWindow dwTemp = new ASObjectWindow(CurPage ,doTemp,request);
|
||
|
||
dwTemp.Style="1"; //设置DW风格 1:Grid 2:Freeform
|
||
dwTemp.ReadOnly = "0"; //设置是否只读 1:只读 0:可写
|
||
|
||
|
||
//生成HTMLDataWindow
|
||
dwTemp.genHTMLObjectWindow(objectNo+","+objectType+","+termID);
|
||
//依次为:
|
||
//0.是否显示
|
||
//1.注册目标组件号(为空则自动取当前组件)
|
||
//2.类型(Button/ButtonWithNoAction/HyperLinkText/TreeviewItem/PlainText/Blank)
|
||
//3.按钮文字
|
||
//4.说明文字
|
||
//5.事件
|
||
//6.资源图片路径
|
||
String sButtons[][] = {
|
||
{"true", "", "Button", "新增", "新增一条信息","newRecord()","","","",""},
|
||
{"true", "", "Button", "删除", "删除一条信息","deleteRecord()","","","",""},
|
||
{"true", "", "Button", "返回", "返回","back()","","","","btn_icon_return"}
|
||
};
|
||
|
||
%>
|
||
<script type="text/javascript" src="<%=sWebRootPath%>/Accounting/js/loan/term/rateterm.js"></script>
|
||
<script language=javascript>
|
||
var olddata={};
|
||
var currency = "<%=currency%>";
|
||
var putoutDate = "<%=putoutDate%>";
|
||
var maturityDate = "<%=maturityDate%>";
|
||
var businessDate = "<%=DateHelper.getBusinessDate()%>";
|
||
var yearDays = "<%=yearDays%>";
|
||
|
||
/*~[Describe=保存;InputParam=无;OutPutParam=无;]~*/
|
||
function saveRecord(){
|
||
as_save("myiframe0","");
|
||
return true;
|
||
}
|
||
|
||
/*~[Describe=新增;InputParam=无;OutPutParam=无;]~*/
|
||
function newRecord(){
|
||
var position= getRowCount(0);
|
||
as_add("myiframe0");
|
||
if(position == 0)
|
||
setItemValue(0,position,'SegFromDate',"<%=DateHelper.getBusinessDate()%>");
|
||
else if(position > 0)
|
||
setItemValue(0,position,'SegFromDate',getItemValue(0,position-1,"SegToDate"));
|
||
|
||
//setItemValue(0,position,'SegToDate',parent.getItemValue(0,0,"MaturityDate"));
|
||
setItemValue(0,position,'ObjectType',"<%=objectType%>");
|
||
setItemValue(0,position,'ObjectNo',"<%=objectNo%>");
|
||
setItemValue(0,position,'Status',"1");
|
||
setItemValue(0,position,'TermID',"<%=termID%>");
|
||
document.all("INPUT_myiframe0_SegToDate_"+position+"_"+getColumnIndex("SegToDate")).onblur=changeSegDate;
|
||
document.all("INPUT_myiframe0_SegTermID_"+position+"_"+getColumnIndex("SegTermID")).onblur=changeRight;
|
||
document.all("INPUT_myiframe0_BaseRateType_"+position+"_"+getColumnIndex("BaseRateType")).onblur=setBaseRateGrade;
|
||
document.all("INPUT_myiframe0_RateFloat_"+position+"_"+getColumnIndex("RateFloat")).onblur=setBusinessRate;
|
||
document.all("INPUT_myiframe0_RateFloatType_"+position+"_"+getColumnIndex("RateFloatType")).onblur=setBusinessRate;
|
||
document.all("INPUT_myiframe0_RepriceType_"+position+"_"+getColumnIndex("RepriceType")).onblur=setRepriceList;
|
||
}
|
||
|
||
function changeSegDate(){
|
||
if(getRow()+1 < getRowCount(0))
|
||
setItemValue(0,getRow()+1,'SegFromDate',getItemValue(0,getRow(),"SegToDate"));
|
||
}
|
||
|
||
/*~[Describe=删除;InputParam=无;OutPutParam=无;]~*/
|
||
function deleteRecord(){
|
||
var sSerialNo = getItemValue(0,getRow(),"SerialNo");
|
||
if (typeof(sSerialNo)=="undefined" || sSerialNo.length==0){
|
||
alert(getHtmlMessage('1'));//请选择一条信息!
|
||
return;
|
||
}
|
||
|
||
if(confirm(getHtmlMessage('2'))){ //您真的想删除该信息吗?
|
||
as_delete("myiframe0");
|
||
}
|
||
}
|
||
|
||
function getColumnIndex(sCol){
|
||
var cnt=0;
|
||
for(var i=0;i<DZ[0][1].length;i++){
|
||
if(DZ[0][1][i][2]!=1) continue;
|
||
if(typeof(sCol)=="string"){
|
||
if(DZ[0][1][i][15].toUpperCase()==sCol.toUpperCase()) return cnt;
|
||
}else{
|
||
if(DZ[0][1][i][15]==sCol) return cnt;
|
||
}
|
||
cnt++
|
||
}
|
||
return -1;
|
||
}
|
||
|
||
function back(){
|
||
CHANGED=false;
|
||
AsControl.OpenView("/Accounting/LoanDetail/LoanTerm/BusinessRATInfo.jsp","ObjectType=<%=objectType%>&ObjectNo=<%=objectNo%>&Status=<%=status%>&TermID=&BackFlag=1","_self","");
|
||
}
|
||
|
||
|
||
//根据组件定义生成的JS脚本规则,设置对应的值和显示规则
|
||
function changeRight()
|
||
{
|
||
<%=sb.toString()%>;
|
||
setBaseRateGrade();
|
||
setRepriceList();
|
||
}
|
||
|
||
function getValues(){
|
||
if(getRowCount(0) < 2){
|
||
alert("必须录入两条及以上数据。");
|
||
return false;
|
||
}
|
||
var values = {};
|
||
for(var row = 0; row < getRowCount(0); row ++)
|
||
{
|
||
values[row] = {};
|
||
for(var i=0;i<DZ[0][1].length;i++){
|
||
var v = getItemValue(0,row,DZ[0][1][i][15]);
|
||
if(typeof(v) == "undefined" && !olddata[row][DZ[0][1][i][15].toUpperCase()])
|
||
v = olddata[row][DZ[0][1][i][15].toUpperCase()];
|
||
values[row][DZ[0][1][i][15]] = v;
|
||
}
|
||
|
||
values[row]["TermID"]="<%=termID%>";
|
||
|
||
//起始日期-到期日判断
|
||
var segFromDate = getItemValue(0,row,"SegFromDate");
|
||
var segToDate = getItemValue(0,row,"SegToDate");
|
||
var businessRate = getItemValue(0,row,"BusinessRate");
|
||
if(row < getRowCount(0)-1 && segFromDate > segToDate){
|
||
alert("第"+(row+1)+"行开始日期不能大于结束日期。");
|
||
return false;
|
||
}
|
||
|
||
if(row < getRowCount(0)-1 && segFromDate < "<%=DateHelper.getBusinessDate()%>"){
|
||
alert("第"+(row+1)+"行开始日期不能小于贷款发放日期。");
|
||
return false;
|
||
}
|
||
|
||
if(row < getRowCount(0)-1 && segToDate > parent.getItemValue(0,0,"MaturityDate")){
|
||
alert("第"+(row+1)+"行结束日期不能大于贷款到期日期。");
|
||
return false;
|
||
}
|
||
|
||
if(row == getRowCount(0)-1 && segToDate)
|
||
{
|
||
alert("第"+(row+1)+"行结束日期不用输入。");
|
||
return false;
|
||
}
|
||
|
||
if(businessRate <= 0 ){
|
||
alert("第"+(row+1)+"行利率为空或小于零。");
|
||
return false;
|
||
}
|
||
}
|
||
|
||
return JSON.stringify(values);
|
||
}
|
||
|
||
|
||
</script>
|
||
<%@include file="/Frame/resources/include/ui/include_list.jspf"%>
|
||
<%@ include file="/Frame/resources/include/include_end.jspf"%> |