Exemplo n.º 1
0
        private PayToDo BuilderPayToDo(CfgBillWriteBackRule rule, FapDynamicObject billData, Employee empInfo, string caseUid)
        {
            //影响此薪资套
            PayToDo payToDo = new PayToDo();

            payToDo.EmpUid     = empInfo.Fid;
            payToDo.EmpCode    = empInfo.EmpCode;
            payToDo.DeptUid    = empInfo.DeptUid;
            payToDo.DeptCode   = empInfo.DeptCode;
            payToDo.CaseUid    = caseUid;                                                                                              //受影响薪资套
            payToDo.TableUid   = rule.DocEntityUid;                                                                                    //单据实体
            payToDo.BizDate    = DateTimeUtils.CurrentDateStr;                                                                         //业务日期--当前时间
            payToDo.OperEmpUid = billData.Get("BillEmpUid") == null?_applicationContext.EmpUid: billData.Get("BillEmpUid").ToString(); //变动处理人--制单人
            payToDo.OperFlag   = "0";                                                                                                  //变动应用 默认为0
            payToDo.TransID    = billData.Get("Id").ToString();                                                                        //单据ID
            return(payToDo);
        }
Exemplo n.º 2
0
        private dynamic BuilderPayToDo(CfgBillWriteBackRule rule, dynamic billData, Employee empInfo, string caseUid)
        {
            //影响此薪资套
            dynamic payToDo = new FapDynamicObject(_dbContext.Columns("PayToDo"));

            payToDo.EmpUid     = empInfo.Fid;
            payToDo.EmpCode    = empInfo.EmpCode;
            payToDo.DeptUid    = empInfo.DeptUid;
            payToDo.DeptCode   = empInfo.DeptCode;
            payToDo.CaseUid    = caseUid;                      //受影响薪资套
            payToDo.TableUid   = rule.DocEntityUid;            //单据实体
            payToDo.BizDate    = DateTimeUtils.CurrentDateStr; //业务日期--当前时间
            payToDo.OperEmpUid = billData.BillEmpUid;          //变动处理人--制单人
            payToDo.OperFlag   = 0;                            //变动应用 默认为0
            payToDo.TransID    = billData.Id;                  //单据ID
            return(payToDo);
        }
Exemplo n.º 3
0
 /// <summary>
 /// 提醒到保险
 /// </summary>
 /// <param name="da"></param>
 /// <param name="rule"></param>
 /// <param name="billData">单据数据</param>
 /// <param name="bizObject">业务数据</param>
 private void NotifyInsurance(CfgBillWriteBackRule rule, FapDynamicObject billData, FapDynamicObject bizObject)
 {
     //影响工资同时影响保险,业务单据必须是Employee
     if (rule.IsNotifyPayroll == 1 && rule.BizEntityUid == "Employee")
     {
         string insCaseSql = "select Fid,EmpCondition from InsCase where TableName!=''";
         var    insCases   = _dbContext.Query(insCaseSql);
         if (insCases == null || insCases.Count() < 1)
         {
             return;
         }
         bizObject.TryGetValue("Fid", out object empUid);
         Employee       empInfo  = _dbContext.Get <Employee>(empUid.ToString());
         List <InsToDo> insToDos = new List <InsToDo>();
         foreach (var cs in insCases)
         {
             //解析保险组中的员工条件
             string          strWhere  = "Fid=@Fid";
             JsonFilterToSql jsont2sql = new JsonFilterToSql(_dbContext);
             string          insWhere  = jsont2sql.BuilderFilter("Employee", cs.EmpCondition);
             if (insWhere.IsPresent())
             {
                 strWhere += " and " + insWhere;
             }
             DynamicParameters param = new DynamicParameters();
             param.Add("Fid", empUid);
             if (_dbContext.Count("Employee", strWhere, param) > 0)
             {
                 string caseUid = cs.Fid;
                 var    insToDo = BuilderInsToDo(rule, billData, empInfo, caseUid);
                 insToDos.Add(insToDo);
             }
         }
         if (insToDos.Count > 0)
         {
             _dbContext.InsertBatch(insToDos);
         }
         else
         {
             var insToDo = BuilderInsToDo(rule, billData, empInfo, "");
             _dbContext.Insert(insToDo);
         }
     }
 }
Exemplo n.º 4
0
 /// <summary>
 /// 提醒到工资
 /// </summary>
 /// <param name="da"></param>
 /// <param name="rule"></param>
 /// <param name="billData">单据数据</param>
 /// <param name="bizObject">业务数据</param>
 private void NotifyPayroll(CfgBillWriteBackRule rule, FapDynamicObject billData, FapDynamicObject bizObject)
 {
     //影响工资,业务单据必须是Employee
     if (rule.IsNotifyPayroll == 1 && rule.BizEntityUid == "Employee")
     {
         string payCaseSql = "select Fid,EmpCondition from PayCase where TableName!=''";
         var    payCases   = _dbContext.Query(payCaseSql);
         if (payCases == null || payCases.Count() < 1)
         {
             return;
         }
         string         empUid   = bizObject.Get("Fid").ToString();
         Employee       empInfo  = _dbContext.Get <Employee>(empUid);
         List <PayToDo> payToDos = new List <PayToDo>();
         foreach (var pc in payCases)
         {
             //解析工资套中的员工条件
             string          strWhere  = "Fid=@Fid";
             JsonFilterToSql jsont2sql = new JsonFilterToSql(_dbContext);
             string          payWhere  = jsont2sql.BuilderFilter("Employee", pc.EmpCondition);
             if (payWhere.IsPresent())
             {
                 strWhere += " and " + payWhere;
             }
             DynamicParameters param = new DynamicParameters();
             param.Add("Fid", empUid);
             if (_dbContext.Count("Employee", strWhere, param) > 0)
             {
                 string caseUid = pc.Fid;
                 var    payToDo = BuilderPayToDo(rule, billData, empInfo, caseUid);
                 payToDos.Add(payToDo);
             }
         }
         if (payToDos.Count > 0)
         {
             _dbContext.InsertBatch(payToDos);
         }
         else
         {
             var payToDo = BuilderPayToDo(rule, billData, empInfo, "");
             _dbContext.Insert(payToDo);
         }
     }
 }
Exemplo n.º 5
0
 public bool PostBillWriteBackRule(CfgBillWriteBackRule model)
 {
     if (model.Fid.IsMissing())
     {
         _dbContext.Insert <CfgBillWriteBackRule>(model);
     }
     else
     {
         CfgBillWriteBackRule newModel = _dbContext.Get <CfgBillWriteBackRule>(model.Fid);
         newModel.DocEntityUid      = model.DocEntityUid;
         newModel.BizEntityUid      = model.BizEntityUid;
         newModel.Association       = model.Association;
         newModel.CustomSql         = model.CustomSql;
         newModel.FieldMapping      = model.FieldMapping;
         newModel.IsNotifyPayroll   = model.IsNotifyPayroll;
         newModel.EmpCategoryFilter = model.EmpCategoryFilter;
         _dbContext.Update <CfgBillWriteBackRule>(newModel);
     }
     return(true);
 }