动作执行前脚本:
var doc1=getCurrentDocument();
var endyear=doc1.getItemValueAsString("日期年");
var endmonth=doc1.getItemValueAsString("日期月");
var sql="select * from tlk_FM_RC_固定资产折旧_NOR";
//var sql="select * from tlk_FM_RC_固定资产折旧_NOR where item_统计日期 = '"+endtime+"'";
var datas=queryBySQL(sql);
//if(datas=null || datas.size()<=0)
for(var iter=datas.iterator();iter.hasNext();)
{
var docs=iter.next();
var docid=docs.getId();
var yuan=docs.getItemValueAsDouble("原值");
var can=docs.getItemValueAsDouble("残值率");
var yue=docs.getItemValueAsDouble("折旧年限");
var starttime=docs.getItemValueAsDate("折旧开始时间");
var value1=docs.getItemValueAsDouble("年初累计折旧");
var val=1-can;
if(starttime!=null && endyear!=null && endmonth!=null){
var starmonth=getMonth(starttime);
var staryear=getYear(starttime);
var month=endmonth-starmonth;
var year=endyear-staryear;
var doc2="";
var yuezhe=(yuan*val/yue)/12;//月折旧计算
if(year==0)
{
doc2=yuezhe*month;//本期累计折旧计算
}else if(year>0){
doc2=yuezhe*endmonth;//本期累计折旧计算
}
}
var value3=value1+doc2;//期末累计折旧计算
var value4 =yuan-value3;//净值计算
var leizhejiu=docs.getItemValueAsDouble("期末累计折旧");
var lastdoc = findDocument(docid);
lastdoc.findItem("年初累计折旧").setValue(value1);
lastdoc.findItem("统计日期").setValue(endyear+"-"endmonth+"-01 00:00:00.000");
lastdoc.findItem("月折旧").setValue(yuezhe);
lastdoc.findItem("本期累计折旧").setValue(doc2);
lastdoc.findItem("期末累计折旧").setValue(value3);
lastdoc.findItem("净值").setValue(value4);
var newprocess = getDocProcess(getApplication());
newprocess.doUpdate(lastdoc);
}