/// <summary> /// 根据配置文件和当前时间,获取CPA周期 /// 如(2012年10月—2013年12月) /// </summary> /// <param name="yearConfig"></param> public List <string> CPAStartAndEnd(Sys_ParamConfig CPAConfig) { int startYear = CPAConfig.LastUpdateTime.Year; var ArrayValue = CPAConfig.ConfigValue.Split(';'); int cpavalue = ArrayValue[0].StringToInt32(); int endYear = startYear + cpavalue; int month1 = ArrayValue[1].StringToInt32(); int month2 = ArrayValue[2].StringToInt32(); DateTime startTime = DateTime.Parse(startYear + "-" + month1 + "-01 0:00:00"); DateTime endTime = DateTime.Parse(endYear + "-" + month2 + "-01 0:00:00").AddMonths(1).AddSeconds(-1); List <string> cpaTime = new List <string>(); if (DateTime.Now >= startTime && DateTime.Now <= endTime) { string linshi = startYear + "年" + month1 + "月—" + endYear + "年" + month2 + "月"; cpaTime.Add(linshi); } else if (DateTime.Now > endTime) { int yearcha = DateTime.Now.Year - startYear; int ss = yearcha / cpavalue; for (int i = 0; i <= ss; i++) { string linshi = (startYear + (i * cpavalue)) + "年" + month1 + "月—" + (endYear + (i * cpavalue)) + "年" + month2 + "月"; cpaTime.Add(linshi); } } return(cpaTime); }
/// <summary> /// 当前时间是否在,培训级别维护时间之内 /// </summary> /// <param name="now">传不带时间的。。嘎嘎</param> public bool IsUpdateTrain(out string startTime, out string endTime, Sys_ParamConfig list, DateTime now) { try { var strlist = new List <string>(); var ArrayValue = list.ConfigValue.Split(';'); //var startTime = ""; //var endTime = ""; var nowyear = DateTime.Now.Year; startTime = nowyear + "-" + ArrayValue[1] + "-" + ArrayValue[2]; endTime = (ArrayValue[3] == "1" ? nowyear + "-" : nowyear + 1 + "-") + ArrayValue[4] + "-" + ArrayValue[5]; var end = Convert.ToDateTime(endTime).AddDays(1).AddSeconds(-1); endTime = end.ToString(); if (now >= Convert.ToDateTime(startTime) && now <= end) { return(true); } return(false); } catch { startTime = ""; endTime = ""; return(true); } }
/// <summary> /// 获取配置当中的年度设定 /// </summary> /// <param name="year"></param> /// <returns>月份 形如 2013-5</returns> public List <string> GetMonthOfConfig(Sys_ParamConfig list, int year) { // var list = configBL.GetSys_ParamConfig(7); var ArrayValue = list.ConfigValue.Split(';'); var listmonth = new List <string>(); if (ArrayValue[0].StringToInt32() == 1) { var month = ArrayValue[1].StringToInt32(); var maxmonth = ArrayValue[2].StringToInt32() == 2 ? 12 : ArrayValue[3].StringToInt32(); //当年的月份 for (int i = 0; i <= maxmonth - month; i++) { var spilt = month + i >= 10 ? "-" : "-0"; listmonth.Add(year + spilt + (month + i)); } //如果有次年的话 if (ArrayValue[2].StringToInt32() == 2) { var nextmonth = ArrayValue[3].StringToInt32(); for (int i = 1; i <= nextmonth; i++) { var spilt = i >= 10 ? "-" : "-0"; listmonth.Add((year + 1) + spilt + i); } } } return(listmonth); }
/// <summary> /// 我的培训首页 /// /// </summary> /// <returns></returns> public ActionResult MyTrainIndex() { var uid = CurrentUser == null ? 0 : CurrentUser.UserId; var usermodel = InitSuper; //所内目标学时 string result = "0"; //CPA目标学时 string CPAresult = "0"; //个人总学时(除CPA) decimal userscore = 0; //全年补预定次数 int ordercount = 0; if (uid != 0) { //CPA目标学时 Sys_ParamConfig cpazq1 = AllSystemConfigs.Where(p => p.ConfigType == 16).FirstOrDefault(); CPAresult = cpazq1.ConfigValue; //计算个人学时 Sys_ParamConfig cpazq2 = AllSystemConfigs.Where(p => p.ConfigType == 14).FirstOrDefault(); userscore = UserBL.GetUserScore(uid, cpazq2); usermodel = UserBL.GetmodelCAP(uid); Sys_ParamConfig cpazq = AllSystemConfigs.Where(p => p.ConfigType == 13).FirstOrDefault(); string mianstr = cpazq.ConfigValue + ";"; string substr = "(?<=" + usermodel.TrainGrade + "-).*?(?=;)"; //string substr = "(?<=B-).*?(?=;)"; result = Regex.Match(mianstr, substr).Value; //全年补预定次数 Sys_ParamConfig cpazq3 = AllSystemConfigs.Where(p => p.ConfigType == 20).FirstOrDefault(); ordercount = Convert.ToInt32(cpazq3.ConfigValue); if (usermodel.ordertimes > ordercount) { usermodel.ordertimes = ordercount; } } ViewData["model"] = usermodel; ViewBag.PayGrade = CurrentUser.PayGrade; var Sys_ParamConfig = AllSystemConfigs.Find(p => p.ConfigType == 33); //读参数配置获取全年在线测试完成次数 ViewBag.ALLOnLineTestNum = Sys_ParamConfig.ConfigValue; ViewBag.PassOnLineTestNum = IAttendce.GetMyExamListPassCount(CurrentUser.UserId, CurrentUser.TrainGrade, CurrentUser.DeptId, " ((way=1 and PassStatus=1) or (way=2 and IsPass=1))"); ViewBag.CourseLe = result; ViewBag.UserScore = userscore; ViewBag.CPACourseLe = CPAresult; ViewBag.OrderCount = ordercount; return(View()); }
/// <summary> /// CPA周期课程列表呈现 /// </summary> public ViewResult CPACourse() { List <string> itemArray = Imonth.CPAStartAndEnd(AllSystemConfigs.Where(p => p.ConfigType == 8).FirstOrDefault()); ViewData["StrCPAYear"] = itemArray; Sys_ParamConfig cpazq = AllSystemConfigs.Where(p => p.ConfigType == 17).FirstOrDefault(); string result = cpazq.ConfigValue; ViewData["allsum"] = result; return(View()); }
/// <summary> /// 年度培训课程列表呈现 /// </summary> /// <returns></returns> public ActionResult CPAYearCourse() { List <Tr_YearPlan> itemArray = Iyear.GetAllYear("IsDelete=0 and PublishFlag=1"); ViewData["StrYear"] = itemArray; Sys_ParamConfig cpazq = AllSystemConfigs.Where(p => p.ConfigType == 16).FirstOrDefault(); string result = cpazq.ConfigValue; ViewData["allsum"] = result; return(View()); }
/// <summary> /// 年度培训课程列表呈现 /// </summary> public ViewResult MyCourse(string TrGrade) { List <Tr_YearPlan> itemArray = Iyear.GetAllYear("IsDelete=0 and PublishFlag=1"); ViewData["StrYear"] = itemArray; Sys_ParamConfig cpazq = AllSystemConfigs.Where(p => p.ConfigType == 13).FirstOrDefault(); string mianstr = cpazq.ConfigValue + ";"; string substr = "(?<=" + TrGrade + "-).*?(?=;)"; //string substr = "(?<=B-).*?(?=;)"; string result = Regex.Match(mianstr, substr).Value; ViewBag.IsCpa = CurrentUser.CPA; ViewData["allsum"] = result; return(View()); }
/// <summary> /// 根据配置文件和当前时间,获取本年度的开始时间和结束时间 /// 如(startTime = 2012-10-01 0:00:00 ; endTime = 2012-12-31 23:59:59 ) /// </summary> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="yearConfig"></param> public void GetYearStartAndEnd(out DateTime startTime, out DateTime endTime, Sys_ParamConfig yearConfig, int year) { startTime = DateTime.Now; endTime = DateTime.Now; var ArrayValue = yearConfig.ConfigValue.Split(';'); if (ArrayValue[0].StringToInt32() == 1) { var month1 = ArrayValue[1].StringToInt32(); var month2 = ArrayValue[3].StringToInt32(); var year1 = year; var year2 = year; if (ArrayValue[2].StringToInt32() == 2) { year2 = year1 + 1; } startTime = DateTime.Parse(year1 + "-" + month1 + "-01 0:00:00"); endTime = DateTime.Parse(year2 + "-" + month2 + "-01 0:00:00").AddMonths(1).AddSeconds(-1); } }
/// <summary> /// 直接返回带短信参数的类 /// </summary> /// <returns></returns> public SMSConfig GetSmsConfing(Sys_ParamConfig _config) { try { var model = _config; var config = new SMSConfig(); if (_config != null) { var value = model.ConfigValue.Split(';'); config.hostIP = value[0]; config.Port = Convert.ToInt32(value[1]); config.Account = value[2]; config.PassWord = value[3]; config.ServiceID = "0"; } return(config); } catch { return(new SMSConfig()); } }
/// <summary> /// 考勤结束计算学时 /// </summary> /// <param name="CourseId"></param> /// <param name="userid"></param> public void UpScore(int CourseId, int userid, DateTime starttime, DateTime endtime) { decimal GetScore = 0; decimal AttLessLength = 0; decimal LessLength = 0; Co_Course coUser = AttDB.GetCoAndUser(CourseId, userid); Cl_Attendce attmodel = clAttDB.GetCl_Attendce(CourseId, userid); Sys_ParamConfig param = paramConfigDB.GetSys_ParamConfig(5); //Sys_ParamConfig param1 = paramConfigDB.GetSys_ParamConfig(24); //违纪学时配置 var configstr = param.ConfigValue.ToString(); //课程学时比例配置 var configstr1 = coUser.CourseLengthDistribute; var cstr1 = configstr1.Split(';'); //违纪学时组装配置集合 var configList = new List <TempConfig>(); foreach (var constr in configstr.Split(';')) { if (constr != "") { var str = constr.Split(','); configList.Add(new TempConfig { EndMinite = Convert.ToInt32(str[2]), Percent = Convert.ToInt32(str[3]), StartMinite = Convert.ToInt32(str[1]), Type = Convert.ToInt32(str[0]) }); } } //计算违纪学时 if (coUser.AttFlag == 1 && starttime.Year != 2050) { LessLength = GetLessLength(configList, coUser.AttFlag, coUser.StartTime, coUser.EndTime, starttime, endtime, coUser.CourseLength); } else if (coUser.AttFlag == 2 && endtime.Year != 2000) { LessLength = GetLessLength(configList, coUser.AttFlag, coUser.StartTime, coUser.EndTime, starttime, endtime, coUser.CourseLength); } else if (coUser.AttFlag == 3 && (starttime.Year != 2050 || endtime.Year != 2000)) { LessLength = GetLessLength(configList, coUser.AttFlag, coUser.StartTime, coUser.EndTime, starttime, endtime, coUser.CourseLength); } string whereStr = string.Format(" where CourseId={0} and UserId={1}", CourseId, userid); Cl_CourseOrder Comodel = CoDB.Getmodel(whereStr); //计算课程总学时,违纪学时 //根据课程编号判断是否第一次学习 if (AttDB.ExistAtts(CourseId, userid)) { if (coUser.AttFlag == 1 && starttime.Year == 2050) { GetScore = 0; AttLessLength = 0; } else if (coUser.AttFlag == 2 && endtime.Year == 2000) { GetScore = 0; AttLessLength = 0; } else if (coUser.AttFlag == 3 && starttime.Year == 2050 && endtime.Year == 2000) { GetScore = 0; AttLessLength = 0; } else { //判断是否有课后评估 if (coUser.IsTest == 0 && coUser.IsPing == 0) { GetScore = coUser.CourseLength - LessLength; AttLessLength = 0 - LessLength; } else { decimal attLength = coUser.CourseLength * (Convert.ToDecimal(cstr1[0])) / 100; GetScore = attLength - LessLength; GetScore = Math.Round(GetScore, 2, MidpointRounding.AwayFromZero); AttLessLength = 0 - LessLength; } } //折算CPA学时 if (coUser.Way == 1 && coUser.IsCPA == 1) { if (Comodel != null && Comodel.AttFlag == 0) { Cl_CpaLearnStatus CPAmodel = cpastatDB.GetCl_CpaLearnStatusByCourseId(CourseId, userid); if (CPAmodel == null) { CPAmodel = new Cl_CpaLearnStatus(); CPAmodel.CourseID = CourseId; CPAmodel.UserID = userid; CPAmodel.IsAttFlag = 0; CPAmodel.IsPass = 1; CPAmodel.Progress = 0; CPAmodel.LearnTimes = 0; if (coUser.IsMust == 1) { CPAmodel.GetLength = Math.Round((GetScore * 50 / 100), 2, MidpointRounding.AwayFromZero); } else { CPAmodel.GetLength = GetScore; } CPAmodel.CpaFlag = 2; CPAmodel.GradeStatus = 1; cpastatDB.SubscribeCPALearnStatus(CPAmodel); } else { CPAmodel.IsAttFlag = 0; CPAmodel.IsPass = 1; CPAmodel.Progress = 0; CPAmodel.LearnTimes = 0; if (coUser.IsMust == 1) { decimal linshi = Convert.ToDecimal((CPAmodel.GetLength * 2) - Comodel.AttScore + GetScore); CPAmodel.GetLength = Math.Round((linshi * 50 / 100), 2, MidpointRounding.AwayFromZero); } else { CPAmodel.GetLength = (CPAmodel.GetLength - Comodel.AttScore) + GetScore; } CPAmodel.CpaFlag = 2; CPAmodel.GradeStatus = 1; cpastatDB.UpdateCPALearnStatus(CPAmodel); } } } } else { GetScore = 0; AttLessLength = 0; } if (Comodel != null && Comodel.AttFlag == 0) { Comodel.GetScore = GetScore + (Comodel.GetScore - Comodel.AttScore); Comodel.AttScore = GetScore; CoDB.Update(Comodel); } if (attmodel != null) { if (Comodel != null && Comodel.AttFlag == 0) { attmodel.LessLength = AttLessLength; clAttDB.UpdateAttendce(attmodel); } } }
/// <summary> /// 补预订 /// </summary> /// <param name="CourseId">课程ID</param> /// <param name="userid">用户ID</param> public void MakeUpOrder(int CourseId, int userid) { Co_Course jobmodel = AttDB.GetJobID(CourseId, userid); Sys_User leamodel = GetLeaderIdByUserId(userid); string where = string.Format(" where CourseId={0} and UserId={1}", CourseId, userid); Cl_MakeUpOrder model = clMakeDB.GetModel(where); Sys_ParamConfig param = paramConfigDB.GetSys_ParamConfig(23); if (model == null) { model = new Cl_MakeUpOrder(); model.CourseId = CourseId; model.UserId = userid; if (leamodel == null) { model.ApprovalUser = ""; } else { model.ApprovalUser = leamodel.JobNum; } model.ApprovalMemo = ""; model.ApprovalFlag = 0; model.ApprovalDateTime = DateTime.Now; model.ApprovalLimitTime = DateTime.Now.AddHours(Convert.ToDouble(param.ConfigValue)); model.LeaveUserID = jobmodel.JobNum; model.IsTimeOut = 0; model.Name = jobmodel.TeacherName; model.CourseName = jobmodel.CourseName; model.LeaveTime = DateTime.Now; model.CourseStartTime = jobmodel.StartTime; model.CourseEndTime = jobmodel.EndTime; model.AttStartTime = jobmodel.attStartTime; model.AttEndTime = jobmodel.attEndTime; clMakeDB.Add(model); } else { if (leamodel == null) { model.ApprovalUser = ""; } else { model.ApprovalUser = leamodel.JobNum; } model.ApprovalMemo = ""; model.ApprovalFlag = 0; model.ApprovalDateTime = DateTime.Now; model.ApprovalLimitTime = DateTime.Now.AddHours(Convert.ToDouble(param.ConfigValue)); model.IsTimeOut = 0; model.LeaveUserID = jobmodel.JobNum; model.Name = jobmodel.TeacherName; model.CourseName = jobmodel.CourseName; model.LeaveTime = DateTime.Now; model.CourseStartTime = jobmodel.StartTime; model.CourseEndTime = jobmodel.EndTime; model.AttStartTime = jobmodel.attStartTime; model.AttEndTime = jobmodel.attEndTime; clMakeDB.Update(model); } }
/// <summary> /// 根据配置文件和当前时间,获取本年度的开始时间和结束时间 /// 如(startTime = 2012-10-01 0:00:00 ; endTime = 2012-12-31 23:59:59 ) /// </summary> /// <param name="startTime"></param> /// <param name="endTime"></param> protected void GetYearStartAndEnd(out DateTime startTime, out DateTime endTime, int year) { Sys_ParamConfig yearConfig = AllSystemConfigs.Find(p => p.ConfigType == 7); new Tr_MonthPlanBL().GetYearStartAndEnd(out startTime, out endTime, yearConfig, year); }
/// <summary> /// 获取配置 /// </summary> public void GetConfig(Sys_ParamConfig _config = null) { config = (new Sys_ParamConfigBL()).GetSmsConfing(_config); }
/// <summary> /// 补预订 /// </summary> /// <param name="cid">课程ID</param> /// <param name="uids">用户IDs</param> /// <returns></returns> public JsonResult UpOrder(int cid, string uids) { try { if (!string.IsNullOrEmpty(uids)) { string sss = ""; string ssss = ""; //补预定 Sys_ParamConfig syscon = AllSystemConfigs.Where(p => p.ConfigType == 20).FirstOrDefault(); if (uids.IndexOf(",") > -1) { string[] userList = Regex.Split(uids, ",", RegexOptions.IgnoreCase); for (int i = 0; i < userList.Length; i++) { if (IAtt.Cl_MakeUpOrderCount(Convert.ToInt32(syscon.ConfigValue), Convert.ToInt32(userList[i]))) { IAtt.MakeUpOrder(cid, Convert.ToInt32(userList[i])); ssss += userList[i] + ","; } else { sss += userList[i] + ","; } } if (sss != "" && ssss != "") { ssss = ssss.Remove(ssss.LastIndexOf(","), 1); SendMess(cid, ssss, 7, "补预定申请", false); return(Json(new { result = 1, content = "补预订成功,但部分用户超出补预订次数限制" }, JsonRequestBehavior.AllowGet)); } else if (sss == "" && ssss != "") { ssss = ssss.Remove(ssss.LastIndexOf(","), 1); SendMess(cid, ssss, 7, "补预定申请", false); return(Json(new { result = 1, content = "补预订成功" }, JsonRequestBehavior.AllowGet)); } else if (sss != "" && ssss == "") { return(Json(new { result = 0, content = "超出补预订次数限制" }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { result = 0, content = "补预订失败" }, JsonRequestBehavior.AllowGet)); } } else { if (IAtt.Cl_MakeUpOrderCount(Convert.ToInt32(syscon.ConfigValue), Convert.ToInt32(uids))) { IAtt.MakeUpOrder(cid, Convert.ToInt32(uids)); SendMess(cid, uids, 7, "补预定申请", false); return(Json(new { result = 1, content = "补预订成功" }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { result = 0, content = "超出补预订次数限制" }, JsonRequestBehavior.AllowGet)); } } } else { return(Json(new { result = 0, content = "补预订失败" }, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { return(Json(new { result = 0, content = "补预订失败" }, JsonRequestBehavior.AllowGet)); } }
/// <summary> /// 个人算学时 /// </summary> /// <param name="uid">用户ID</param> /// <returns></returns> public decimal GetUserScore(int uid, Sys_ParamConfig cpazq) { decimal sumT1 = 0; decimal sumT2 = 0; decimal sumT = 0; //集中 List <Cl_CourseOrder> Tolist = _userDB.GetTogetherList(uid); List <Cl_CourseOrder> tempT1 = Tolist.Where(p => p.IsMust == 0).ToList();//必修 sumT1 = Convert.ToDecimal(tempT1.Sum(p => p.tmpScore)); List <Cl_CourseOrder> tempT2 = Tolist.Where(p => p.IsMust == 1).ToList();//选修 sumT2 = Convert.ToDecimal(tempT2.Sum(p => p.tmpScore)); decimal sumV1 = 0; decimal sumV2 = 0; decimal sumV = 0; //视频 List <Cl_CourseOrder> Volist = _userDB.GetVideoList(uid); List <Cl_CourseOrder> tempV1 = Volist.Where(p => p.IsMust == 0).ToList();//必修 sumV1 = Convert.ToDecimal(tempV1.Sum(p => p.GetLength)); List <Cl_CourseOrder> tempV2 = Volist.Where(p => p.IsMust == 1).ToList();//选修 sumV2 = Convert.ToDecimal(tempV2.Sum(p => p.GetLength)); string mianstr = cpazq.ConfigValue; string[] CoType = Regex.Split(mianstr, ";", RegexOptions.IgnoreCase); if (!string.IsNullOrEmpty(CoType[0])) { string[] ToType = Regex.Split(CoType[0], ",", RegexOptions.IgnoreCase); if (sumT1 > Convert.ToDecimal(ToType[1])) { sumT1 = Convert.ToDecimal(ToType[1]); } if (sumT2 > Convert.ToDecimal(ToType[2])) { sumT2 = Convert.ToDecimal(ToType[2]); } sumT = sumT1 + sumT2; if (sumT > Convert.ToDecimal(ToType[0])) { sumT = Convert.ToDecimal(ToType[0]); } } else { sumT = sumT1 + sumT2; } if (!string.IsNullOrEmpty(CoType[1])) { string[] VoType = Regex.Split(CoType[1], ",", RegexOptions.IgnoreCase); if (sumV1 > Convert.ToDecimal(VoType[1])) { sumV1 = Convert.ToDecimal(VoType[1]); } if (sumV2 > Convert.ToDecimal(VoType[2])) { sumV2 = Convert.ToDecimal(VoType[2]); } sumV = sumV1 + sumV2; if (sumV > Convert.ToDecimal(VoType[0])) { sumV = Convert.ToDecimal(VoType[0]); } } else { sumV = sumV1 + sumV2; } TogetherSum = sumT; VideoSum = sumV; return(sumV + sumT); }