/// <summary> /// 添加到数据库 /// </summary> /// <param name="oData"></param> /// <param name="coachWageSubList"></param> /// <exception cref="Comm.YYException.YYException"></exception> private void AddToDB(Models.RequestModel.CreateCoachWageRequest oData, IList <Sys.Models.CoachWages_Sub> coachWageSubList) { if (coachWageSubList == null || coachWageSubList.Count == 0) { return; } Sys.Models.CoachWages coachWage = new Sys.Models.CoachWages() { AddTime = DateTime.Now, CoachFullName = oData.CurrentCoachFullName, CoachID = oData.CurrentCoachId, VenueID = oData.VenueID, WorkDate = Convert.ToDateTime(oData.WorkDate), Price = coachWageSubList.Sum(c => c.CoachPrice), State = 0, Remark = "待发工资录入", }; bool isExist = false;// IsExist(coachWage.CoachID.Value, coachWage.VenueID.Value, coachWage.WorkDate.Value.ToString("yyyy-MM-dd")); if (isExist) { throw new Comm.YYException.YYException(string.Format("{0} {1} 工资已经录入", coachWage.CoachFullName, oData.WorkDate)); } else { bool flag = PrePayCoachMoney(coachWage, coachWageSubList); if (!flag) { throw new Comm.YYException.YYException(string.Format("{0} {1} 工资已经录入", coachWage.CoachFullName, oData.WorkDate)); } } }
/// <summary> /// 插入工资表 修改课程表 /// </summary> /// <param name="coachWage"></param> /// <param name="coachWageSubList"></param> /// <returns></returns> private bool PrePayCoachMoney(Sys.Models.CoachWages coachWage, IList <Sys.Models.CoachWages_Sub> coachWageSubList) { System.Data.IDbConnection connection = Comm.Helper.DapperHelper.Instance; connection.Open(); System.Data.IDbTransaction transaction = connection.BeginTransaction(); using (connection) { try { //插入工资主表 var coachWageId = connection.Insert <Sys.Models.CoachWages>(coachWage, transaction); //更新这个排课表、约课表 coachWageSubList.ToList().ForEach((c) => { c.WagesID = coachWageId; //更新这个排课表 connection.Execute("UPDATE[dbo].[TeachingSchedule] SET [State] =@state WHERE PKID=@pkID", new { state = Convert.ToInt32(Sys.Models.StateEnum.TeachingSchedule.PayCoachMoney), pkID = c.PKID }, transaction); //更新约课表 connection.Execute("UPDATE[dbo].[Curriculum] SET [State] =@state WHERE CurriculumID=@curriculumID", new { state = Convert.ToInt32(Sys.Models.StateEnum.Curriculum.PayCoachMoney), curriculumID = c.CurriculumID }, transaction); }); //插入工资字表 connection.Insert <Sys.Models.CoachWages_Sub>(coachWageSubList, transaction); transaction.Commit(); } catch (Exception ex) { logs.Error("预发工资失败", ex); transaction.Rollback(); return(false); } } return(true); }