(function() {
var doc = $.context.getCurrentDocument();
var appId = $.context.getCurrentApplicationId();
//var nowtime=$.date.getCurrentDate();
//var format = "yyyy-MM-01";
//var nowtimestr =$.date.dateToString(nowtime,format);
//var salarymonth=$.date.stringToDate(nowtimestr,format);
//salarymonth.setMonth(salarymonth.getMonth()-1);
var salarymonth = $.date.timestampToDate(doc.getElementByName("计薪月").getValue());
//根据公司人员名单表
var appId = $.context.getCurrentApplicationId();
var fieldMaps = new Packages.java.util.HashMap();
fieldMaps.put("id", doc.getElementByName("选择公司").getValue());
var emps = $.form.getFormDocumentsByFieldNameAndValue(appId, "工资数据审批名单", fieldMaps);
//清除该公司,当月考勤数据
var delmap = new Packages.java.util.HashMap();
delmap.put("所属公司", doc.getElementByName("选择公司").getValue());
delmap.put("薪资月", salarymonth);
$.form.deleteFormDocumentsByFieldNameAndValue(appId, "考勤表", delmap);
//根据月份获取当月应出勤天数
var map2 = new Packages.java.util.HashMap();
map2.put("所属月份", salarymonth);
map2.put("是否工作日", "1");
var ycqts = 0;
var ycq = $.form.getFormDocumentsByFieldNameAndValue(appId, "工作日期维护表", map2);
if (ycq != null) {
ycqts = ycq.size();
}
var users = new Packages.java.util.ArrayList();
if (emps != null) {
users = emps.get(0).getElementByName("人员名单").getValue();
}
if (users != null) {
for (var i = 0; i < users.size(); i++) {
var nj = 0; //年假
var sj = 0; //事假
var bj = 0; //病假
var hj = 0; //婚假
var cj = 0; //产假
var pcj = 0; //陪产假
var sangj = 0; //丧假
var txj = 0; //调休假
//查询该员工所有假期
var map3 = new Packages.java.util.HashMap();
map3.put("所属月份", salarymonth);
map3.put("是否工作日", "1");
map3.put("姓名", users.get(i));
var qjdocs = $.form.getFormDocumentsByFieldNameAndValue(appId, "请假日期记录表", map3);
if (qjdocs != null) {
for (var x = 0; x < qjdocs.size(); x++) {
var qdoc = qjdocs.get(x);
if (qdoc.getElementByName("请假类型").getValue() == "1") {
nj = nj + qdoc.getElementByName("请假时长").getFloatValue();
} else if (qdoc.getElementByName("请假类型").getValue() == "2") {
sj = sj + qdoc.getElementByName("请假时长").getFloatValue();
} else if (qdoc.getElementByName("请假类型").getValue() == "3") {
bj = bj + qdoc.getElementByName("请假时长").getFloatValue();
} else if (qdoc.getElementByName("请假类型").getValue() == "4") {
hj = hj + qdoc.getElementByName("请假时长").getFloatValue();
} else if (qdoc.getElementByName("请假类型").getValue() == "5") {
cj = cj + qdoc.getElementByName("请假时长").getFloatValue();
} else if (qdoc.getElementByName("请假类型").getValue() == "6") {
pcj = pcj + qdoc.getElementByName("请假时长").getFloatValue();
} else if (qdoc.getElementByName("请假类型").getValue() == "7") {
sangj = sangj + qdoc.getElementByName("请假时长").getFloatValue();
} else if (qdoc.getElementByName("请假类型").getValue() == "8") {
txj = txj + qdoc.getElementByName("请假时长").getFloatValue();
}
}
}
var adddoc = $.form.createEmptyDocument(appId, "考勤表");
adddoc.addElement("应出勤天数", ycqts);
adddoc.addElement("所属公司", doc.getElementByName("选择公司").getValue());
adddoc.addElement("姓名", users.get(i));
adddoc.addElement("薪资月", salarymonth);
adddoc.addElement("年假天数", nj) adddoc.addElement("病假天数", bj) adddoc.addElement("事假天数", sj) adddoc.addElement("婚假天数", hj) adddoc.addElement("丧假天数", sangj) adddoc.addElement("换休假天数", txj) adddoc.addElement("产假天数", cj) adddoc.addElement("陪产假天数", pcj) adddoc.addElement("旷工天数", 0) adddoc.addElement("实际出勤天数", ycqts - nj - bj - sj - hj - sangj - txj - cj - pcj);
$.form.saveFormDocument(adddoc, appId);
}
}
})()
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!