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); }
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); }
/// <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); } } }
/// <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); } } }
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); }