七巧低代码开发——场景案例:绩效奖金评分限制

客户需求: 员工每个月的绩效奖金与领导的评分挂钩,同时领导评分需遵循以下原则: 1、员工还未自评完毕的,领导评分无法提交 2、领导对员工的评分不能高于公司对部门的评分 3、评分完毕后会将...
客户需求
员工每个月的绩效奖金与领导的评分挂钩,同时领导评分需遵循以下原则:
1、员工还未自评完毕的,领导评分无法提交
2、领导对员工的评分不能高于公司对部门的评分
3、评分完毕后会将本月的奖金按照员工个人得分进行分配,需将分配后的剩余的部门奖金记录下来下月发放
实现方式/思路(关键信息):
1)在领导评分的提交按钮中的执行前编写脚本
2)获取当前表单的数据做数据对比,不符合原则的调用校验函数报错
3)领导评分没问题的根据评分以及客户提供的逻辑编写公式计算剩余金额并写入指定表单
(function() {
    var applicationId = $.context.getCurrentApplicationId();
    var currentDocument = $.context.getCurrentDocument();
    var subDocuments = currentDocument.getElementByName("评分明细").getSubDocuments();
    var dertnuber = currentDocument.getElementByName("部门人数").getValue();
    var d = currentDocument.getElementByName("部门总奖金").getValue();
    var defen = currentDocument.getElementByName("部门得分").getDoubleValue();

    currentDocument.addElement("数字", subDocuments.size());
    // $.form.saveFormDocument(currentDocument, applicationId);
    if (dertnuber == subDocuments.size()) {

}

    else {
        var message = $.validate.create();

        message.addError("本部门还有员工没有自评,不能提交");

        //返回默认校验信息集合
        return message;
    } //$.form.saveFormDocument(currentDocument, applicationId);
    var a = 0;
    for (var j = 0; j < subDocuments.size(); j++) {
        var subDocument = subDocuments.get(j);
        var score = subDocument.getElementByName("领导总评分").getValue();
        var factor = subDocument.getElementByName("单位奖金系数").getFloatValue();
        var coefficient = subDocument.getElementByName("部门奖金系数").getFloatValue();
        var achievements = subDocument.getElementByName("绩效金额").getFloatValue();
        var x = (coefficient / 100).toFixed(4);
        //var userId = subDocument.getElementByName("员工姓名").getValue();
        // var identity = subDocument.getElementByName("身份证号").getValue();
        var c = score * factor * x * achievements * 0.01;
        a = a + c;

        if (defen < score) {

            var message = $.validate.create();

            message.addError("员工得分最高分不能超过部门得分,请修改评分");

            //返回默认校验信息集合
            return message;
        }
    }

    //currentDocument.addElement("部门剩余金额", Math.round((d-a), 0));
    currentDocument.addElement("部门剩余金额", Math.round((d - a), 2));
    //$.form.saveFormDocument(currentDocument, applicationId);
})()
  • 发表于 2024-03-30 21:46
  • 阅读 ( 1067 )
  • 分类:专题案例

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
七小妹
七小妹

12 篇文章

作家榜 »

  1. 七小妹 12 文章
  2. 你是猴子派来的吧 3 文章
  3. 七巧低代码 2 文章
  4. 低代码小刘 2 文章
  5. 彭杏怡 0 文章
  6. 林友景 0 文章
  7. 0 文章
  8. 赵泽伟 0 文章