Commit 5e559969 authored by 吴春's avatar 吴春

解决冲突

parents 526c7bc9 c543a200
......@@ -64,7 +64,7 @@ namespace Edu.Model.Entity.Course
/// <summary>
/// 0-正常,1-缺席 签到状态
/// 0-正常,1-缺席,2-请假 签到状态
/// </summary>
public int CheckStatus { get; set; }
......
......@@ -69,5 +69,10 @@ namespace Edu.Model.Entity.Course
/// 课堂视频
/// </summary>
public string VideoUrl { get; set; }
/// <summary>
/// 消耗课时
/// </summary>
public decimal TimeHour { get; set; }
}
}
......@@ -45,7 +45,7 @@ namespace Edu.Model.Entity.Course
/// <summary>
/// 课时
/// </summary>
public int CourseHour { get; set; }
public decimal CourseHour { get; set; }
/// <summary>
/// 课时费
......@@ -101,7 +101,7 @@ namespace Edu.Model.Entity.Course
/// <summary>
/// 抵基础课时
/// </summary>
public int DeductionHour { get; set; }
public decimal DeductionHour { get; set; }
/// <summary>
/// 提成确认状态0-未确认,1-已确认
......
......@@ -192,5 +192,15 @@ namespace Edu.Model.Entity.User
/// 老师特长
/// </summary>
public string Specialty { get; set; }
/// <summary>
/// 基础课时启用 1是
/// </summary>
public int BaseHoursEnabled { get; set; }
/// <summary>
/// 启用时间 (存到月)
/// </summary>
public string EnableTime { get; set; }
}
}
\ No newline at end of file
......@@ -122,6 +122,16 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public decimal BaseHourFee { get; set; }
/// <summary>
/// 是否启用基础课时 1是
/// </summary>
public int BaseHoursEnabled { get; set; }
/// <summary>
/// 启用时间 (存到月)
/// </summary>
public string EnableTime { get; set; }
/// <summary>
/// 班级课时分钟数
/// </summary>
......
......@@ -54,5 +54,8 @@ namespace Edu.Model.ViewModel.Course
///班级学员
/// </summary>
public List<RB_Order_Guest_ViewModel> GuestList { get; set; }
/// 上课分钟数
/// </summary>
public int TimeMinute { get; set; }
}
}
\ No newline at end of file
......@@ -249,5 +249,10 @@ namespace Edu.Model.ViewModel.Course
/// 结束时间
/// </summary>
public string EndTime { get; set; }
/// <summary>
/// 消耗课时
/// </summary>
public decimal TimeHour { get; set; }
}
}
\ No newline at end of file
......@@ -82,6 +82,16 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public decimal HourMoney { get; set; }
/// <summary>
/// 是否启用基础课时 1是
/// </summary>
public int BaseHoursEnabled { get; set; }
/// <summary>
/// 启用时间 (存到月)
/// </summary>
public string EnableTime { get; set; }
#endregion
}
}
\ No newline at end of file
......@@ -191,5 +191,15 @@ namespace Edu.Model.ViewModel.User
/// 基础课时费
/// </summary>
public decimal BaseHourFee { get; set; }
/// <summary>
/// 是否启用基础课时 1是
/// </summary>
public int BaseHoursEnabled { get; set; }
/// <summary>
/// 启用时间 (存到月)
/// </summary>
public string EnableTime { get; set; }
}
}
......@@ -181,7 +181,7 @@ namespace Edu.Module.Course
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Class_Time_ViewModel> GetClassTimeListRepository(RB_Class_Time_ViewModel query)
public List<RB_Class_Time_ViewModel> GetClassTimeListModule(RB_Class_Time_ViewModel query)
{
return class_TimeRepository.GetClassTimeListRepository(query);
}
......@@ -474,6 +474,7 @@ namespace Edu.Module.Course
#region 班级计划
//默认上课时间
var defaultPlanTimeList = new List<ClassTimeItem>();
var BasicMinutes = class_ConfigRepository.GetBasicMinutesRepository(model.Group_Id);
foreach (var tItem in model.DefaultTimeList)
{
ClassTimeItem tModel = new ClassTimeItem()
......@@ -484,17 +485,26 @@ namespace Edu.Module.Course
tModel.DateList = tItem.DateList;
foreach (var subItem in tItem.TimeList)
{
tModel.TimeList.Add(new TimeItem()
var startDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + subItem.StartTime + ":00");
var endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + subItem.EndTime + ":00");
TimeSpan span = endDate.Subtract(startDate);
var timeModel = new TimeItem()
{
StartTime = subItem.StartTime,
EndTime = subItem.EndTime
});
EndTime = subItem.EndTime,
TimeHour = subItem.TimeHour,
};
if (timeModel.TimeHour <= 0)
{
timeModel.TimeHour = Convert.ToDecimal(span.TotalMinutes / BasicMinutes);
}
tModel.TimeList.Add(timeModel);
defaultPlanTimeList.Add(tModel);
}
}
//班级上课计划列表
List<RB_Class_Plan_ViewModel> classPlanList = CreateClassPlanList(model, defaultPlanTimeList);
List<RB_Class_Plan_ViewModel> classPlanList = CreateClassPlanList(model, defaultPlanTimeList, BasicMinutes);
model.ClassPlanList = classPlanList;
AddClassPlanModule(model);
#endregion
......@@ -597,6 +607,17 @@ namespace Edu.Module.Course
return class_ConfigRepository.GetClassMinutesRepository(classId);
}
/// <summary>
/// 获取基础课时分钟数
/// </summary>
/// <param name="Group_Id"></param>
/// <returns></returns>
public int GetBasicMinutesModule(int Group_Id)
{
var BasicMinutes = class_ConfigRepository.GetBasicMinutesRepository(Group_Id);
return BasicMinutes;
}
/// <summary>
/// 更新班级结课日期
/// </summary>
......@@ -611,8 +632,10 @@ namespace Edu.Module.Course
/// 生成班级上课计划表
/// </summary>
/// <param name="model"></param>
/// <param name="defaultPlanTimeList"></param>
/// <param name="BasicMinutes"></param>
/// <returns></returns>
private List<RB_Class_Plan_ViewModel> CreateClassPlanList(RB_Class_ViewModel model, List<ClassTimeItem> defaultPlanTimeList)
private List<RB_Class_Plan_ViewModel> CreateClassPlanList(RB_Class_ViewModel model, List<ClassTimeItem> defaultPlanTimeList, int BasicMinutes)
{
var planList = class_PlanRepository.GetClassPlanListRepository(new RB_Class_Plan_ViewModel() { ClassId = model.ClassId, StartTime = DateTime.Now.ToString("yyyy-MM-dd") });
if (planList != null && planList.Count > 0)
......@@ -628,7 +651,10 @@ namespace Edu.Module.Course
if (model.ClassHours > 0)
{
var srartDate = model.OpenTime;
var BasicMinutes = class_ConfigRepository.GetBasicMinutesRepository(model.Group_Id);
// var BasicMinutes = class_ConfigRepository.GetBasicMinutesRepository(model.Group_Id);
//按周排课和按月排课
if (model.ClassStyle == ClassStyleEnum.Week || model.ClassStyle == ClassStyleEnum.Month)
{
......@@ -803,11 +829,14 @@ namespace Edu.Module.Course
double dayMinutes = 0;
foreach (var sItem in timeList)
{
classTimeList.Add(new RB_Class_Time_ViewModel()
var timeModel = new RB_Class_Time_ViewModel()
{
StartTime = sItem.StartTime,
EndTime = sItem.EndTime
});
EndTime = sItem.EndTime,
TimeHour = sItem.TimeHour,
};
classTimeList.Add(timeModel);
var startDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + sItem.StartTime + ":00");
var endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + sItem.EndTime + ":00");
TimeSpan span = endDate.Subtract(startDate);
......@@ -816,6 +845,7 @@ namespace Edu.Module.Course
dayMinutes += span.TotalMinutes;
}
}
if (model.ClassHourMinute > 0)
{
dayClassHours = dayMinutes / model.ClassHourMinute;
......@@ -933,6 +963,7 @@ namespace Edu.Module.Course
subItem.ClassTimeId,
subItem.StartTime,
subItem.EndTime,
subItem.TimeHour,
CheckNum = tempCheckList?.Where(qitem => qitem.CheckStatus == 0)?.Count(),
NoCheckNum = tempCheckList?.Where(qitem => qitem.CheckStatus == 1)?.Count(),
});
......@@ -1352,12 +1383,10 @@ namespace Edu.Module.Course
var BasicMinutes = 0;
//BasicMinutes = class_ConfigRepository.GetBasicMinutesRepository(list[0].Group_Id);
BasicMinutes = class_ConfigRepository.GetClassMinutesRepository(list[0].ClassId);
var totalMinutes = classCheckRepository.CalcPlanMinutesRepository(new RB_Class_Plan_ViewModel()
var timeModel =class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel()
{
ClassId = list[0].ClassId,
ClassDate = list[0].ClassDate,
ClassTimeId = list[0].ClassTimeId
});
})?.FirstOrDefault();
//写日志
bool flag = true;
foreach (var item in list)
......@@ -1365,7 +1394,7 @@ namespace Edu.Module.Course
if (flag)
{
var guestModel = order_GuestRepository.GetEntity(item.OrderGuestId);
item.CurrentDeductionHours = totalMinutes / BasicMinutes;
item.CurrentDeductionHours = timeModel?.TimeHour ?? 0;
if (item.ClassCheckId > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
......@@ -1390,21 +1419,17 @@ namespace Edu.Module.Course
var oldModel = classCheckRepository.GetGuestFinishMinutesRepository(item.OrderGuestId.ToString(), ClassCheckId: item.ClassCheckId)?.FirstOrDefault();
if (flag)
{
//缺勤
if (item.CheckStatus == 1)
//更新学员完成课时
var completeHours = (oldModel?.FinishClassHours ?? 0) + item.CurrentDeductionHours;
Dictionary<string, object> orderFileds = new Dictionary<string, object>()
{
flag = CalcGuestHoursModule(guestModel, item);
}
//出勤
else
{nameof(RB_Order_Guest_ViewModel.CompleteHours),completeHours }
};
flag = order_GuestRepository.Update(orderFileds, new WhereHelper(nameof(RB_Order_Guest_ViewModel.Id), item.OrderGuestId));
//缺勤和请假
if (item.CheckStatus == 1 ||item.CheckStatus==2)
{
//更新学员完成课时
var completeHours = (oldModel?.FinishClassHours ?? 0) + item.CurrentDeductionHours;
Dictionary<string, object> orderFileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_ViewModel.CompleteHours),completeHours }
};
flag = order_GuestRepository.Update(orderFileds, new WhereHelper(nameof(RB_Order_Guest_ViewModel.Id), item.OrderGuestId));
flag = CalcGuestHoursModule(guestModel, item);
}
}
}
......@@ -1508,7 +1533,7 @@ namespace Edu.Module.Course
if (flag)
{
flag = student_MakeupRepository.Insert(new RB_Student_Makeup()
flag = student_MakeupRepository.SetStudentMakeUpRepository(new RB_Student_Makeup()
{
Id = 0,
ClassCheckId = checkModel.ClassCheckId,
......@@ -1519,7 +1544,7 @@ namespace Edu.Module.Course
Group_Id = checkModel.Group_Id,
MakeUpStatus = 3,
OrderGuestId = checkModel.OrderGuestId
}) > 0;
}) ;
}
}
return flag;
......@@ -2293,6 +2318,22 @@ namespace Edu.Module.Course
return flag;
}
/// <summary>
/// 更新上课计划中的课时数
/// </summary>
/// <param name="ClassTimeId"></param>
/// <param name="TimeHour"></param>
/// <returns></returns>
public bool UpdateClassPlanTimeModule(int ClassTimeId, decimal TimeHour)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Class_Time.TimeHour), TimeHour},
};
var flag = class_TimeRepository.Update(fileds, new WhereHelper(nameof(RB_Class_Time.ClassTimeId), ClassTimeId));
return flag;
}
#region 班级课程关联管理
/// <summary>
......
......@@ -231,7 +231,7 @@ namespace Edu.Module.Course
/// <param name="classId">班级编号</param>
/// <param name="Group_Id">集团编号</param>
/// <returns></returns>
public Dictionary<string, object> GetClassCourseListModule(int classId, int Group_Id)
public Dictionary<string, object> GetClassCourseListModule(int classId)
{
List<object> newCourseList = new List<object>();
Dictionary<string, object> fileds = new Dictionary<string, object>();
......
......@@ -503,15 +503,13 @@ namespace Edu.Module.Course
string EndTime = Convert.ToDateTime(dmodel.Month + "-01").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");
var plist = class_PlanRepository.GetClassPlanList_V2(new RB_Class_Plan_ViewModel() { Group_Id = userInfo.Group_Id, Q_TeacherIds = dmodel.TeacherIds, StartTime = StartTime, EndTime = EndTime });
//查询所有课程的上课时间
List<RB_Class_Time_ViewModel> timeList = new List<RB_Class_Time_ViewModel>();
List<RB_Class_Type_ViewModel> typeList = new List<RB_Class_Type_ViewModel>();
List<RB_Class_Check_ViewModel> checkList = new List<RB_Class_Check_ViewModel>();
List<RB_Teacher_ViewModel> teacherList = new List<RB_Teacher_ViewModel>();
List<RB_Teaching_BonusDetail_ViewModel> DateList = new List<RB_Teaching_BonusDetail_ViewModel>();
if (plist.Any())
{
string pids = string.Join(",", plist.Select(x => x.ClassPlanId));
timeList = class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel() { Group_Id = userInfo.Group_Id, QClassPlanIds = pids });
string classTypeIds = string.Join(",", plist.Select(x => x.ClassType).Distinct());
typeList = class_TypeRepository.GetClassTypeListRepository(new RB_Class_Type_ViewModel() { Group_Id = userInfo.Group_Id, Q_CTypeIds = classTypeIds });
//查询签到数据
......@@ -520,6 +518,38 @@ namespace Edu.Module.Course
//查询教师列表
string teacherIds = string.Join(",", plist.Select(x => x.TeacherId).Distinct());
teacherList = teacherRepository.GetTeacherListRepository(new RB_Teacher_ViewModel() { QTIds = teacherIds });
//根据学生签到表 查询
var list = class_CheckRepository.GetTeacherConsumptionHoursDetialList(teacherIds, -1, 0, StartTime, EndTime, userInfo.Group_Id);
if (list.Any())
{
foreach (var item in list)
{
//上课课时
decimal KSNum = item.CurrentDeductionHours;//使用签到表的课时
var typeModel = typeList.Where(x => x.CTypeId == item.ClassType).FirstOrDefault();
decimal unitPrice = configModel.BasicHourFee + (typeModel?.AddHourFee ?? 0) + (item?.BaseHourFee ?? 0);
//课时费 需要每个班级 单独计算 因为 班级有附加费用
decimal KSMoney = KSNum * unitPrice;
DateList.Add(new RB_Teaching_BonusDetail_ViewModel
{
Date = item.ClassDate,
TimeBucket = item.StartDate + "~" + item.EndDate,
TeacherId = item.TeacherId,
TeacherName = item.TeacherName,
ClassId = item.ClassId,
ClassName = item.ClassName,
CouseId = item.CouseId,
CourseName = item.CourseName,
KSNum = KSNum,
UnitPrice = unitPrice,
Money = KSMoney
});
}
}
}
var trans = teaching_BonusDetailRepository.DbTransaction;
try
......@@ -527,18 +557,9 @@ namespace Edu.Module.Course
decimal TotalMoney = 0;
foreach (var item in plist)
{
var dateqList = DateList.Where(x => x.TeacherId == item.TeacherId && x.Date == item.ClassDate).ToList();
//查询课时
var ctimelist = timeList.Where(x => x.ClassPlanId == item.ClassPlanId).ToList();
int minute = 0;
string nowTime = DateTime.Now.ToString("yyyy-MM-dd");
foreach (var qitem in ctimelist)
{
var ts = Convert.ToDateTime(nowTime + " " + qitem.EndTime) - Convert.ToDateTime(nowTime + " " + qitem.StartTime);
minute += (int)ts.TotalMinutes;
}
int ClassHourMinute = configModel.BasicMinutes;//课时分钟数
if (item.ClassHourMinute > 0) { ClassHourMinute = item.ClassHourMinute; }
int ksNum = minute / ClassHourMinute; // 未达到一课时时间 算不算一课时
decimal ksNum = dateqList.Sum(x => x.KSNum);
//查询课单价
var typeModel = typeList.Where(x => x.CTypeId == item.ClassType).FirstOrDefault();
var teacherModel = teacherList.Where(x => x.TId == item.TeacherId).FirstOrDefault();
......@@ -607,11 +628,18 @@ namespace Edu.Module.Course
List<int> TeacherIdList = blist.Select(x => x.TeacherId).Distinct().ToList();
foreach (var item in TeacherIdList)
{
var teacherModel = teacherList.Where(x => x.TId == item).FirstOrDefault();
if (teacherModel == null) {
continue;
}
if (!(teacherModel.BaseHoursEnabled == 1 && Convert.ToDateTime(dmodel.Month) >= Convert.ToDateTime(teacherModel.EnableTime))){
continue;
}
var qblist = blist.Where(x => x.TeacherId == item).OrderBy(x => x.Date).ThenBy(x => x.UnitPrice).ToList();
int BasicHours = configModel.BasicHours;
decimal BasicHours = configModel.BasicHours;
foreach (var qitem in qblist)
{
int CourseHour = 0, DeductionHour = 0;
decimal CourseHour = 0, DeductionHour = 0;
if (BasicHours > qitem.CourseHour)
{
DeductionHour = qitem.CourseHour;
......
......@@ -2413,9 +2413,7 @@ namespace Edu.Module.Finance
int Minutes = (int)(Convert.ToDateTime("2021-06-29 " + item.EndDate) - Convert.ToDateTime("2021-06-29 " + item.StartDate)).TotalMinutes;
decimal Hours = Math.Round(Convert.ToDecimal(Minutes) / 60, 2, MidpointRounding.AwayFromZero);//小时
//上课课时
decimal ClassHourMinute = configModel.BasicMinutes;//课时分钟数
if (item.ClassHourMinute > 0) { ClassHourMinute = item.ClassHourMinute; }
decimal KSNum = Math.Round(Convert.ToDecimal(Minutes) / ClassHourMinute, 2, MidpointRounding.AwayFromZero); // 未达到一课时时间 算不算一课时
decimal KSNum = item.CurrentDeductionHours;//使用签到表的课时
var typeModel = cTypeList.Where(x => x.CTypeId == item.ClassType).FirstOrDefault();
......@@ -2423,6 +2421,8 @@ namespace Edu.Module.Finance
//课时费 需要每个班级 单独计算 因为 班级有附加费用
decimal KSMoney = KSNum * unitPrice;
decimal ClassHourMinute = configModel.BasicMinutes;//课时分钟数
if (item.ClassHourMinute > 0) { ClassHourMinute = item.ClassHourMinute; }
decimal HourMoney = Math.Round(unitPrice / ClassHourMinute * 60, 2, MidpointRounding.AwayFromZero);//没小时课时费
DateList.Add(new RB_Teaching_BonusDetail_ViewModel
......@@ -2462,7 +2462,7 @@ namespace Edu.Module.Finance
#region 基础课时处理
decimal DeductionMoney = 0;
if (configModel.BasicHours > 0)
if (configModel.BasicHours > 0 && item.BaseHoursEnabled == 1 && STime >= Convert.ToDateTime(item.EnableTime))
{
//遍历所有老师
List<int> TeacherIdList = mlist.Select(x => x.TeacherId).Distinct().ToList();
......@@ -2563,9 +2563,7 @@ namespace Edu.Module.Finance
int Minutes = (int)(Convert.ToDateTime("2021-06-29 " + item.EndDate) - Convert.ToDateTime("2021-06-29 " + item.StartDate)).TotalMinutes;
decimal Hours = Math.Round(Convert.ToDecimal(Minutes) / 60, 2, MidpointRounding.AwayFromZero);//小时
//上课课时
decimal ClassHourMinute = configModel.BasicMinutes;//课时分钟数
if (item.ClassHourMinute > 0) { ClassHourMinute = item.ClassHourMinute; }
decimal KSNum = Math.Round(Convert.ToDecimal(Minutes) / ClassHourMinute, 2, MidpointRounding.AwayFromZero); // 未达到一课时时间 算不算一课时
decimal KSNum = item.CurrentDeductionHours;//使用签到表课时
var typeModel = cTypeList.Where(x => x.CTypeId == item.ClassType).FirstOrDefault();
......@@ -2573,6 +2571,8 @@ namespace Edu.Module.Finance
//课时费 需要每个班级 单独计算 因为 班级有附加费用
decimal KSMoney = KSNum * unitPrice;
decimal ClassHourMinute = configModel.BasicMinutes;//课时分钟数
if (item.ClassHourMinute > 0) { ClassHourMinute = item.ClassHourMinute; }
decimal HourMoney = Math.Round(unitPrice / ClassHourMinute * 60, 2, MidpointRounding.AwayFromZero);//没小时课时费
DateList.Add(new RB_Teaching_BonusDetail_ViewModel
......@@ -2615,7 +2615,7 @@ namespace Edu.Module.Finance
#region 基础课时处理
decimal DeductionMoney = 0;
if (configModel.BasicHours > 0)
if (configModel.BasicHours > 0 && item.BaseHoursEnabled == 1 && STime >= Convert.ToDateTime(item.EnableTime))
{
//遍历所有老师
List<int> TeacherIdList = mlist.Select(x => x.TeacherId).Distinct().ToList();
......@@ -2739,9 +2739,7 @@ namespace Edu.Module.Finance
int Minutes = (int)(Convert.ToDateTime("2021-06-29 " + item.EndDate) - Convert.ToDateTime("2021-06-29 " + item.StartDate)).TotalMinutes;
decimal Hours = Math.Round(Convert.ToDecimal(Minutes) / 60, 2, MidpointRounding.AwayFromZero);//小时
//上课课时
decimal ClassHourMinute = configModel.BasicMinutes;//课时分钟数
if (item.ClassHourMinute > 0) { ClassHourMinute = item.ClassHourMinute; }
decimal KSNum = Math.Round(Convert.ToDecimal(Minutes) / ClassHourMinute, 2, MidpointRounding.AwayFromZero); // 未达到一课时时间 算不算一课时
decimal KSNum = item.CurrentDeductionHours;//课时直接取这里的了, 这个可手动调整了;
var typeModel = cTypeList.Where(x => x.CTypeId == item.ClassType).FirstOrDefault();
......@@ -2749,6 +2747,8 @@ namespace Edu.Module.Finance
//课时费 需要每个班级 单独计算 因为 班级有附加费用
decimal KSMoney = KSNum * unitPrice;
decimal ClassHourMinute = configModel.BasicMinutes;//课时分钟数
if (item.ClassHourMinute > 0) { ClassHourMinute = item.ClassHourMinute; }
decimal HourMoney = Math.Round(unitPrice / ClassHourMinute * 60, 2, MidpointRounding.AwayFromZero);//每小时课时费
......@@ -2767,7 +2767,9 @@ namespace Edu.Module.Finance
Hours = Hours,
HourMoney = HourMoney,
UnitPrice = unitPrice,
Money = KSMoney
Money = KSMoney,
BaseHoursEnabled = item.BaseHoursEnabled,
EnableTime = item.EnableTime
});
}
......@@ -2776,10 +2778,10 @@ namespace Edu.Module.Finance
while (true)
{
DateTime ETime = STime.AddMonths(1).AddDays(-1);
var mlist = RList.Where(x => x.Date >= STime && x.Date <= ETime).ToList();
var mlist = RList.Where(x => x.Date >= STime && x.Date <= ETime && x.BaseHoursEnabled == 1 && STime >= Convert.ToDateTime(x.EnableTime)).ToList();
#region 基础课时处理
decimal DeductionMoney = 0;
if (configModel.BasicHours > 0)
if (configModel.BasicHours > 0 && mlist.Any())
{
//遍历所有老师
List<int> TeacherIdList = mlist.Select(x => x.TeacherId).Distinct().ToList();
......@@ -2854,9 +2856,7 @@ namespace Edu.Module.Finance
int Minutes = (int)(Convert.ToDateTime("2021-06-29 " + item.EndDate) - Convert.ToDateTime("2021-06-29 " + item.StartDate)).TotalMinutes;
decimal Hours = Math.Round(Convert.ToDecimal(Minutes) / 60, 2, MidpointRounding.AwayFromZero);//小时
//上课课时
decimal ClassHourMinute = configModel.BasicMinutes;//课时分钟数
if (item.ClassHourMinute > 0) { ClassHourMinute = item.ClassHourMinute; }
decimal KSNum = Math.Round(Convert.ToDecimal(Minutes) / ClassHourMinute, 2, MidpointRounding.AwayFromZero); // 未达到一课时时间 算不算一课时
decimal KSNum = item.CurrentDeductionHours;
var typeModel = cTypeList.Where(x => x.CTypeId == item.ClassType).FirstOrDefault();
......@@ -2864,6 +2864,8 @@ namespace Edu.Module.Finance
//课时费 需要每个班级 单独计算 因为 班级有附加费用
decimal KSMoney = KSNum * unitPrice;
decimal ClassHourMinute = configModel.BasicMinutes;//课时分钟数
if (item.ClassHourMinute > 0) { ClassHourMinute = item.ClassHourMinute; }
decimal HourMoney = Math.Round(unitPrice / ClassHourMinute * 60, 2, MidpointRounding.AwayFromZero);//没小时课时费
RList.Add(new RB_Teaching_BonusDetail_ViewModel
......@@ -2881,7 +2883,9 @@ namespace Edu.Module.Finance
Hours = Hours,
HourMoney = HourMoney,
UnitPrice = unitPrice,
Money = KSMoney
Money = KSMoney,
BaseHoursEnabled = item.BaseHoursEnabled,
EnableTime = item.EnableTime
});
}
......@@ -2890,11 +2894,11 @@ namespace Edu.Module.Finance
while (true)
{
DateTime ETime = STime.AddMonths(1).AddDays(-1);
var mlist = RList.Where(x => x.Date >= STime && x.Date <= ETime).ToList();
var mlist = RList.Where(x => x.Date >= STime && x.Date <= ETime && x.BaseHoursEnabled == 1 && STime >= Convert.ToDateTime(x.EnableTime)).ToList();
#region 基础课时处理
decimal DeductionMoney = 0;
if (configModel.BasicHours > 0)
if (configModel.BasicHours > 0 && mlist.Any())
{
//遍历所有老师
List<int> TeacherIdList = mlist.Select(x => x.TeacherId).Distinct().ToList();
......@@ -3226,10 +3230,8 @@ namespace Edu.Module.Finance
{
int Minutes = (int)(Convert.ToDateTime("2021-06-29 " + item.EndDate) - Convert.ToDateTime("2021-06-29 " + item.StartDate)).TotalMinutes;
decimal Hours = Math.Round(Convert.ToDecimal(Minutes) / 60, 2, MidpointRounding.AwayFromZero);//小时
//上课课时
decimal ClassHourMinute = configModel.BasicMinutes;//课时分钟数
if (item.ClassHourMinute > 0) { ClassHourMinute = item.ClassHourMinute; }
decimal KSNum = Math.Round(Convert.ToDecimal(Minutes) / ClassHourMinute, 2, MidpointRounding.AwayFromZero); // 未达到一课时时间 算不算一课时
//上课课时
decimal KSNum = item.CurrentDeductionHours;//签到课时长度
var typeModel = cTypeList.Where(x => x.CTypeId == item.ClassType).FirstOrDefault();
......@@ -3237,6 +3239,8 @@ namespace Edu.Module.Finance
//课时费 需要每个班级 单独计算 因为 班级有附加费用
decimal KSMoney = KSNum * unitPrice;
decimal ClassHourMinute = configModel.BasicMinutes;//课时分钟数
if (item.ClassHourMinute > 0) { ClassHourMinute = item.ClassHourMinute; }
decimal HourMoney = Math.Round(unitPrice / ClassHourMinute * 60, 2, MidpointRounding.AwayFromZero);//每小时课时费
......@@ -3255,7 +3259,9 @@ namespace Edu.Module.Finance
Hours = Hours,
HourMoney = HourMoney,
UnitPrice = unitPrice,
Money = KSMoney
Money = KSMoney,
BaseHoursEnabled = item.BaseHoursEnabled,
EnableTime = item.EnableTime
});
}
......@@ -3264,10 +3270,10 @@ namespace Edu.Module.Finance
while (true)
{
DateTime ETime = STime.AddMonths(1).AddDays(-1);
var mlist = TeacherHoursList.Where(x => x.Date >= STime && x.Date <= ETime).ToList();
var mlist = TeacherHoursList.Where(x => x.Date >= STime && x.Date <= ETime && x.BaseHoursEnabled == 1 && STime >= Convert.ToDateTime(x.EnableTime)).ToList();
#region 基础课时处理
decimal DeductionMoney = 0;
if (configModel.BasicHours > 0)
if (configModel.BasicHours > 0 && mlist.Any())
{
//遍历所有老师
List<int> TeacherIdList = mlist.Select(x => x.TeacherId).Distinct().ToList();
......@@ -3410,6 +3416,18 @@ namespace Edu.Module.Finance
return RList;
}
/// <summary>
/// 获取班级月度分摊统计
/// </summary>
/// <param name="startTime"></param>
/// <param name="endTime"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public object GetAllClassNowMonthStatistics(string startTime, string endTime, UserInfo userInfo)
{
return null;
}
#endregion
}
}
......@@ -295,6 +295,8 @@ namespace Edu.Module.User
fileds.Add(nameof(RB_Teacher_ViewModel.BaseStuNum), model.BaseStuNum);
fileds.Add(nameof(RB_Teacher_ViewModel.BaseHourFee), model.BaseHourFee);
fileds.Add(nameof(RB_Teacher_ViewModel.Specialty), model.Specialty);
fileds.Add(nameof(RB_Teacher_ViewModel.BaseHoursEnabled), model.BaseHoursEnabled);
fileds.Add(nameof(RB_Teacher_ViewModel.EnableTime), model.EnableTime);
#region 修改日志
string logContent = "";
if (model.TeacherName != oldModel.TeacherName)
......
......@@ -323,6 +323,10 @@ WHERE 1=1
builder.AppendFormat(" AND A.{0} LIKE @ClassName ", nameof(RB_Class_ViewModel.ClassName));
parameters.Add("ClassName", "%" + query.ClassName.Trim() + "%");
}
if (!string.IsNullOrEmpty(query.ClassNo))
{
builder.AppendFormat(" AND A.{0} ='{1}' ", nameof(RB_Class_ViewModel.ClassNo), query.ClassNo);
}
if (!string.IsNullOrWhiteSpace(query.CourseName))
{
builder.AppendFormat(" AND B.{0} LIKE @CourseName ", nameof(RB_Class_ViewModel.CourseName));
......
......@@ -155,7 +155,7 @@ WHERE 1=1 AND `Status` =0 and CheckStatus =0 ");
builder.AppendFormat(@"
SELECT A.OrderGuestId AS GuestId,SUM(A.StudyNum) AS FinishMinutes,SUM(A.CurrentDeductionHours) AS FinishClassHours
FROM rb_class_check AS A
WHERE A.CheckStatus=0 ");
WHERE A.`Status`=0 ");
if (!string.IsNullOrEmpty(guestIds))
{
builder.AppendFormat(" AND A.OrderGuestId IN({0})", guestIds);
......@@ -168,47 +168,7 @@ WHERE A.CheckStatus=0 ");
return Get<GuestFinishMinute_ViewModel>(builder.ToString()).ToList();
}
/// <summary>
/// 计算上课计划分钟数
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public int CalcPlanMinutesRepository(RB_Class_Plan_ViewModel query)
{
int result = 0;
string where = "";
if (query.ClassId > 0)
{
where += string.Format(" AND B.ClassId={0} ", query.ClassId);
}
if (query.ClassDate != null)
{
where += string.Format(" AND B.ClassDate='{0}' ", query.ClassDate);
}
if (query.ClassTimeId > 0)
{
where += string.Format(" AND C.ClassTimeId='{0}' ", query.ClassTimeId);
}
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT SUM(FinishMinutes)
FROM
(
SELECT TIMESTAMPDIFF(MINUTE,(DATE_FORMAT(CONCAT('2021-01-01 ',C.StartTime,':00'),'%Y-%m-%d %H:%i')),(DATE_FORMAT(CONCAT('2021-01-01 ',C.EndTime,':00'), '%Y-%m-%d %H:%i'))) AS FinishMinutes
FROM rb_class_plan AS B INNER JOIN rb_class_time AS C ON B.ClassPlanId=C.ClassPlanId
WHERE 1=1 AND B.`Status`=0 {0}
) AS A
", where);
var obj = base.ExecuteScalar(builder.ToString());
if (obj != null)
{
Int32.TryParse(obj.ToString(), out result);
}
return result;
}
/// <summary>
/// <summary>
/// 班级签到完成学习分钟数
/// </summary>
/// <param name="classIds">班级编号</param>
......@@ -442,7 +402,7 @@ GROUP BY tt.TeacherId,tt.OrderGuestId
}
string sql = $@"
SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.ClassNo,c.ClassHourMinute,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate FROM rb_class_check p
SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,t2.BaseHoursEnabled,t2.EnableTime,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.ClassNo,c.ClassHourMinute,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate,Max(p.CurrentDeductionHours) as CurrentDeductionHours FROM rb_class_check p
INNER JOIN rb_class_time t on p.ClassTimeId = t.ClassTimeId
LEFT JOIN rb_teacher t2 on p.TeacherId = t2.TId
LEFT JOIN rb_class c on p.ClassId = c.ClassId
......@@ -480,7 +440,7 @@ ORDER BY p.ClassDate ASC
}
string sql = $@"
SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.ClassNo,c.ClassHourMinute,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate FROM rb_class_check p
SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,t2.BaseHoursEnabled,t2.EnableTime,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.ClassNo,c.ClassHourMinute,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate,Max(p.CurrentDeductionHours) as CurrentDeductionHours FROM rb_class_check p
INNER JOIN rb_class_time t on p.ClassTimeId = t.ClassTimeId
LEFT JOIN rb_teacher t2 on p.TeacherId = t2.TId
LEFT JOIN rb_class c on p.ClassId = c.ClassId
......
......@@ -21,7 +21,7 @@ namespace Edu.Repository.Course
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT *
SELECT *,TIMESTAMPDIFF(MINUTE,(DATE_FORMAT(CONCAT('2021-01-01 ',StartTime,':00'),'%Y-%m-%d %H:%i')),(DATE_FORMAT(CONCAT('2021-01-01 ',EndTime,':00'), '%Y-%m-%d %H:%i'))) AS TimeMinute
FROM RB_Class_Time
WHERE 1=1
");
......
......@@ -4,6 +4,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Course
......@@ -73,5 +74,50 @@ WHERE 1=1
builder.Append(" ORDER BY A.ClassId,A.ClassDate,A.OrderGuestId ");
return GetPage<RB_Student_Makeup_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
}
/// <summary>
/// 新增修改学员补课信息
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool SetStudentMakeUpRepository(RB_Student_Makeup model)
{
bool flag = false;
var newModel = new RB_Student_Makeup()
{
Id = 0,
ClassCheckId = model.ClassCheckId,
ClassDate = model.ClassDate,
ClassId = model.ClassId,
CreateBy = model.CreateBy,
CreateTime = model.CreateTime,
Group_Id = model.Group_Id,
MakeUpStatus = 3,
OrderGuestId = model.OrderGuestId
};
newModel.Id = CheckStudentMakeUpExistsRepository(model);
if (newModel.Id > 0)
{
flag = base.Insert(newModel) > 0;
}
else
{
flag = base.Update(newModel);
}
return flag;
}
/// <summary>
/// 检查数据是否存在
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int CheckStudentMakeUpExistsRepository(RB_Student_Makeup model)
{
List<WhereHelper> whereHelpers = new List<WhereHelper>();
whereHelpers.Add(new WhereHelper(nameof(RB_Student_Makeup.ClassCheckId), model.ClassCheckId));
whereHelpers.Add(new WhereHelper(nameof(RB_Student_Makeup.OrderGuestId), model.OrderGuestId));
return base.Exists("Id", whereHelpers);
}
}
}
......@@ -449,7 +449,7 @@ FROM
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT ar.AccountRemark,A.Id,A.Account,A.AccountId,A.Group_Id,A.School_Id,A.EmployeeName,A.UserIcon,A.IDCard,A.Sex,A.Education,A.EntryTime,A.Address,A.BirthDate
,A.LeaveStatus,A.LeaveTime,A.EmployeeTel,A.AccountType,A.Email,A.BaseHourFee,IFNULL(A.DirectSupervisor,0) AS DirectSupervisor
,A.LeaveStatus,A.LeaveTime,A.EmployeeTel,A.AccountType,A.Email,A.BaseHourFee,A.BaseHoursEnabled,A.EnableTime,IFNULL(A.DirectSupervisor,0) AS DirectSupervisor
,IFNULL(G.GroupName,'') AS GroupName,IFNULL(s.SName,'') AS SchoolName
,IFNULL(d.DeptId,0) AS Dept_Id,IFNULL(d.DeptName,'') AS DeptName,IFNULL(p.PostId,0) AS Post_Id, IFNULL(p.PostName,'') AS PostName
,(CASE WHEN CONCAT(DATE_FORMAT(now(),'%Y'),'-',DATE_FORMAT(BirthDate,'%m-%d')) >= DATE_FORMAT(now(),'%Y-%m-%d')
......@@ -463,7 +463,7 @@ FROM
,b.School_Id,IFNULL(B.MName,'') AS EmployeeName,B.MHead AS UserIcon,B.Dept_Id,B.Post_Id,B.IDCard
,B.Sex,B.Education,B.EntryTime,B.Address,B.BirthDate
,B.LeaveStatus,B.LeaveTime,B.MTel AS EmployeeTel,IFNULL(B.Email,'') AS Email
,0 as BaseHourFee
,0 as BaseHourFee,0 as BaseHoursEnabled,'' as EnableTime
FROM rb_manager AS B LEFT JOIN rb_account AS A ON A.AccountId=B.MId AND A.AccountType=1
WHERE 1=1 {0} {1}
UNION ALL
......@@ -472,7 +472,7 @@ FROM
,b.School_Id,IFNULL(B.TeacherName,'') AS EmployeeName,B.TeacherIcon AS UserIcon,B.Dept_Id,B.Post_Id,B.IDCard
,B.Sex,B.Education,B.EntryTime,B.Address,B.BirthDate
,B.LeaveStatus,B.LeaveTime,B.TeacherTel AS EmployeeTel,IFNULL(B.Email,'') AS Email
,B.BaseHourFee
,B.BaseHourFee,B.BaseHoursEnabled,B.EnableTime
FROM rb_teacher AS B LEFT JOIN rb_account AS A ON A.AccountId=B.TId AND A.AccountType=2
WHERE 1=1 {0} {2}
UNION ALL
......@@ -481,7 +481,7 @@ FROM
,b.School_Id,IFNULL(B.AssistName,'') AS EmployeeName,B.AssistIcon AS UserIcon,B.Dept_Id,B.Post_Id,B.IDCard
,B.Sex,B.Education,B.EntryTime,B.Address,B.BirthDate
,B.LeaveStatus,B.LeaveTime,B.AssistTel AS EmployeeTel,IFNULL(B.Email,'') AS Email
,0 as BaseHourFee
,0 as BaseHourFee,0 as BaseHoursEnabled,'' as EnableTime
FROM rb_assist AS B LEFT JOIN rb_account AS A ON A.AccountId=B.AId AND A.AccountType=3
WHERE 1=1 {0} {3}
) AS A LEFT JOIN rb_group AS g ON A.Group_Id=g.GId
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Edu.Cache.User;
using Edu.Common.API;
using Edu.Common.Enum.Course;
......@@ -298,6 +299,13 @@ namespace Edu.WebApi.Controllers.Course
}
message += "【" + item.EndTime + "】格式不正确!(参考格式为 00:00)";
}
var startDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + item.StartTime + ":00");
var endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + item.EndTime + ":00");
TimeSpan span = endDate.Subtract(startDate);
if (item.TimeHour <= 0)
{
item.TimeHour = Convert.ToDecimal(span.TotalMinutes / classModule.GetBasicMinutesModule(extModel.Group_Id));
}
if (!string.IsNullOrEmpty(message))
{
return ApiResult.ParamIsNull(message: message);
......@@ -348,39 +356,53 @@ namespace Edu.WebApi.Controllers.Course
[HttpPost]
public ApiResult InitClassTime()
{
bool flag = false;
var list = classModule.GetClassListModule(new RB_Class_ViewModel());
foreach (var item in list)
{
List<string> dateList = new List<string>();
if (!string.IsNullOrEmpty(item.DateJson))
List<ClassTimeItem> dateList = new List<ClassTimeItem>();
if (!string.IsNullOrEmpty(item.DefaultTimeJson))
{
dateList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(item.DateJson);
dateList = Common.Plugin.JsonHelper.DeserializeObject<List<ClassTimeItem>>(item.DefaultTimeJson);
}
if (dateList != null && dateList.Count > 0 && !string.IsNullOrEmpty(item.DefaultTimeJson))
foreach (var jItem in dateList)
{
ClassTimeItem model = new ClassTimeItem()
{
DateList = new List<string>(),
TimeList = new List<TimeItem>(),
};
model.DateList = dateList;
JArray jArray = JArray.Parse(item.DefaultTimeJson);
foreach (var jItem in jArray)
if (jItem.TimeList != null && jItem.TimeList.Count > 0)
{
JObject jobj = JObject.Parse(jItem.ToString());
model.TimeList.Add(new TimeItem()
foreach (var sItem in jItem.TimeList)
{
StartTime = jobj["StartTime"].ToString(),
EndTime = jobj["EndTime"].ToString(),
});
var startDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + sItem.StartTime + ":00");
var endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + sItem.EndTime + ":00");
TimeSpan span = endDate.Subtract(startDate);
if (sItem.TimeHour <= 0)
{
sItem.TimeHour = Convert.ToDecimal(span.TotalMinutes / classModule.GetBasicMinutesModule(item.Group_Id));
}
}
}
List<ClassTimeItem> slist = new List<ClassTimeItem>
{
model
};
bool flag = classModule.UpdateClassTimeModule(item.ClassId, Common.Plugin.JsonHelper.Serialize(slist));
}
flag = classModule.UpdateClassTimeModule(item.ClassId, Common.Plugin.JsonHelper.Serialize(dateList));
}
var classTimeList = classModule.GetClassTimeListModule(new RB_Class_Time_ViewModel());
int basicMintues= classModule.GetBasicMinutesModule(classTimeList[0].Group_Id);
Task.Run(() =>
{
foreach (var item in classTimeList)
{
var startDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + item.StartTime + ":00");
var endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + item.EndTime + ":00");
TimeSpan span = endDate.Subtract(startDate);
if (span.TotalMinutes % basicMintues == 0)
{
item.TimeHour = Convert.ToDecimal(span.TotalMinutes / basicMintues);
}
if (item.TimeHour > 0)
{
flag = classModule.UpdateClassPlanTimeModule(item.ClassTimeId, item.TimeHour);
}
}
});
return ApiResult.Success();
}
......@@ -597,9 +619,6 @@ namespace Edu.WebApi.Controllers.Course
#endregion
#region 上课计划
/// <summary>
/// 获取上课计划
/// </summary>
......@@ -751,7 +770,7 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.Failed("数据不存在");
}
double totalMinutes = 0;
var planTimeList = classModule.GetClassTimeListRepository(new RB_Class_Time_ViewModel { ClassId = classId, ClassPlanId = classPlanId, Group_Id = base.UserInfo.Group_Id, School_Id = schoolId, ClassTimeId = ClassTimeId });
var planTimeList = classModule.GetClassTimeListModule(new RB_Class_Time_ViewModel { ClassId = classId, ClassPlanId = classPlanId, Group_Id = base.UserInfo.Group_Id, School_Id = schoolId, ClassTimeId = ClassTimeId });
if (planTimeList != null && planTimeList.Any())
{
foreach (var item in planTimeList)
......@@ -1308,7 +1327,7 @@ namespace Edu.WebApi.Controllers.Course
{
return ApiResult.Failed("班级上课计划不存在");
}
var planTiemList = classModule.GetClassTimeListRepository(new RB_Class_Time_ViewModel { Group_Id = base.UserInfo.Group_Id, ClassId = extModel.ClassId, ClassPlanId = extModel.ClassPlanId });
var planTiemList = classModule.GetClassTimeListModule(new RB_Class_Time_ViewModel { Group_Id = base.UserInfo.Group_Id, ClassId = extModel.ClassId, ClassPlanId = extModel.ClassPlanId });
model.TeacherName = planDate.TeacherName;
model.WorkDate = planDate.ClassDate.ToString("yyyy年MM月dd日");
model.WeekStr = StringHelper.GetJapanWeekChar(planDate.ClassDate);
......@@ -1500,11 +1519,9 @@ namespace Edu.WebApi.Controllers.Course
/// <returns></returns>
public ApiResult GetTeacherPlan()
{
var query = new RB_Class_ViewModel()
{
Group_Id = base.UserInfo.Group_Id,
// School_Id = base.ParmJObj.GetInt("School_Id", 0),
Teacher_Id = base.ParmJObj.GetInt("Teacher_Id", 0),
StartTime = base.ParmJObj.GetStringValue("StartTime"),
EndTime = base.ParmJObj.GetStringValue("EndTime"),
......@@ -2073,7 +2090,7 @@ namespace Edu.WebApi.Controllers.Course
{
return ApiResult.Failed("请传入上课时间Id");
}
var oldModel = classModule.GetClassTimeListRepository(new RB_Class_Time_ViewModel { ClassTimeId = extModel.ClassTimeId, Group_Id = base.UserInfo.Group_Id }).FirstOrDefault();
var oldModel = classModule.GetClassTimeListModule(new RB_Class_Time_ViewModel { ClassTimeId = extModel.ClassTimeId, Group_Id = base.UserInfo.Group_Id }).FirstOrDefault();
if (oldModel == null || oldModel.ClassTimeId == 0)
{
return ApiResult.Failed("上课计划不存在");
......@@ -2100,7 +2117,7 @@ namespace Edu.WebApi.Controllers.Course
{
return ApiResult.Failed("请传入上课时间Id");
}
var oldModel = classModule.GetClassTimeListRepository(new RB_Class_Time_ViewModel { ClassTimeId = extModel.ClassTimeId, }).FirstOrDefault();
var oldModel = classModule.GetClassTimeListModule(new RB_Class_Time_ViewModel { ClassTimeId = extModel.ClassTimeId, }).FirstOrDefault();
if (oldModel == null || oldModel.ClassTimeId == 0)
{
return ApiResult.Failed("上课计划不存在");
......
......@@ -295,7 +295,7 @@ namespace Edu.WebApi.Controllers.Course
string roomIds = string.Join(",", roomList.Select(x => x.ClassRoomId));
roomUserLogList = classRoomModule.GetClassRoomUseLogListRepository(new RB_Class_RoomUseLog_ViewModel { StartTime = StartTime, EndTime = EndTime, QRoomIds = roomIds });
string pids = string.Join(",", roomList.Select(x => x.ClassPlanId));
timeList = classModule.GetClassTimeListRepository(new RB_Class_Time_ViewModel() { Group_Id = base.UserInfo.Group_Id, QClassPlanIds = pids });
timeList = classModule.GetClassTimeListModule(new RB_Class_Time_ViewModel() { Group_Id = base.UserInfo.Group_Id, QClassPlanIds = pids });
timeList.ForEach(x => x.NewPlanDateTime = System.DateTime.Now.ToString("yyyy-MM-dd ") + x.StartTime);
timeList.ForEach(x => x.NewEndPlanDateTime = System.DateTime.Now.ToString("yyyy-MM-dd ") + x.EndTime);
foreach (var item in roomUserLogList)
......
......@@ -42,6 +42,7 @@ namespace Edu.WebApi.Controllers.Course
{
School_Id = base.ParmJObj.GetInt("School_Id"),
ClassName = base.ParmJObj.GetStringValue("ClassName"),
ClassNo = base.ParmJObj.GetStringValue("ClassNo"),
StartTime = base.ParmJObj.GetStringValue("StartTime"),
EndTime = base.ParmJObj.GetStringValue("EndTime"),
Teacher_Id = base.ParmJObj.GetInt("Teacher_Id"),
......@@ -66,6 +67,7 @@ namespace Edu.WebApi.Controllers.Course
{
x.ClassId,
x.ClassName,
x.ClassNo,
x.CourseName,
x.CourseFeature,
x.ClassHours,
......@@ -1431,6 +1433,144 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.Success("", pageModel);
}
/// <summary>
/// 获取订单列表统计 Excel导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Obsolete]
public FileContentResult GetOrderPageListStatisticsToExcel()
{
List<ExcelDataSource> slist = new List<ExcelDataSource>();
ExcelDataSource header = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value:"订单号"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"下单日期"){CellWidth=20,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"业务员"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"班级"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"开班时间"){CellWidth=20,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"课程"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"人数"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"单价"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"成交单价"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"应收总额"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"实收"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"优惠金额"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"少价金额"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"退款"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"平台税金"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"待收金额"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"状态"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"学生名单"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"销售备注"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"教务备注"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"校长备注"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"经理备注"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
}
};
slist.Add(header);
string ExcelName = "报名统计" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
var userInfo = base.UserInfo;
RB_Order_ViewModel demodel = new RB_Order_ViewModel()
{
OrderId = base.ParmJObj.GetInt("OrderId"),
GuestName = base.ParmJObj.GetStringValue("GuestName"),
ClassName = base.ParmJObj.GetStringValue("ClassName"),
CourseId = base.ParmJObj.GetInt("CouseId"),
StartTime = base.ParmJObj.GetStringValue("StartTime"),
EndTime = base.ParmJObj.GetStringValue("EndTime"),
OPStartTime = base.ParmJObj.GetStringValue("OPStartTime"),
OPEndTime = base.ParmJObj.GetStringValue("OPEndTime"),
Q_NotCollect = base.ParmJObj.GetInt("Q_NotCollect"),
OrderState = (OrderStateEnum)base.ParmJObj.GetInt("OrderState"),
Q_OrderState = base.ParmJObj.GetInt("Q_OrderState"),
Q_OrderBy = base.ParmJObj.GetInt("Q_OrderBy"),
PlatformTax = base.ParmJObj.GetDecimal("PlatformTax"),
EnterID = base.ParmJObj.GetInt("EnterID")
};
demodel.Group_Id = userInfo.Group_Id;
var list = orderModule.GetMyOrderPageList(1, 100000, out long count, demodel);
try
{
foreach (var item in list)
{
item.DueInMoney = item.PreferPrice - (item.Income - item.Refund + item.PlatformTax + item.DiscountMoney);
string GuestNameStr = string.Join(",", item?.GuestList.Select(x => x.GuestName));
ExcelDataSource firstRow = new ExcelDataSource(30)
{
ExcelRows = new List<ExcelColumn>()
{
new ExcelColumn(value: item.OrderId.ToString()){ },
new ExcelColumn(value: item.CreateTime.ToString("yyyy-MM-dd HH:mm")){ },
new ExcelColumn(value: item.EnterName){ },
new ExcelColumn(value: item.ClassName){ },
new ExcelColumn(value: item.OpenTime.ToString("yyyy-MM-dd")){ },
new ExcelColumn(value: item.CourseName){ },
new ExcelColumn(value: item.GuestNum.ToString()){ },
new ExcelColumn(value: item.Class_Price.ToString("#0.00")){ },
new ExcelColumn(value: item.Unit_Price.ToString("#0.00")){ },
new ExcelColumn(value: item.PreferPrice.ToString("#0.00")){ },
new ExcelColumn(value: item.Income.ToString("#0.00")){ },
new ExcelColumn(value: item.DiscountMoney.ToString("#0.00")){ },
new ExcelColumn(value: item.LessPrice.ToString("#0.00")){ },
new ExcelColumn(value: item.Refund.ToString("#0.00")){ },
new ExcelColumn(value: item.PlatformTax.ToString("#0.00")){ },
new ExcelColumn(value: item.DueInMoney.ToString("#0.00")){ },
new ExcelColumn(value: item.OrderState.ToName()){ },
new ExcelColumn(value: GuestNameStr){ },
new ExcelColumn(value: item?.SaleRemarkList.FirstOrDefault()?.Content??""){ },
new ExcelColumn(value: item?.TeacherRemarkList.FirstOrDefault()?.Content??""){ },
new ExcelColumn(value: item?.RectorRemarkList.FirstOrDefault()?.Content??""){ },
new ExcelColumn(value: item?.DirectorRemarkList.FirstOrDefault()?.Content??""){ },
}
};
slist.Add(firstRow);
}
ExcelDataSource firstRowT = new ExcelDataSource(30)
{
ExcelRows = new List<ExcelColumn>()
{
new ExcelColumn(value: "合计"){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: list.Sum(x=>x.GuestNum).ToString()){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: list.Sum(x=>x.PreferPrice).ToString("#0.00")){ },
new ExcelColumn(value: list.Sum(x=>x.Income).ToString("#0.00")){ },
new ExcelColumn(value: list.Sum(x=>x.DiscountMoney).ToString("#0.00")){ },
new ExcelColumn(value: list.Sum(x=>x.LessPrice).ToString("#0.00")){ },
new ExcelColumn(value: list.Sum(x=>x.Refund).ToString("#0.00")){ },
new ExcelColumn(value: list.Sum(x=>x.PlatformTax).ToString("#0.00")){ },
new ExcelColumn(value: list.Sum(x=>x.DueInMoney).ToString("#0.00")){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
}
};
slist.Add(firstRowT);
var byteData = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData, "application/octet-stream", ExcelName);
}
catch (Exception ex)
{
LogHelper.Write(ex, "OutToExcelOrderStudentClassHoursList");
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", ExcelName);
}
}
/// <summary>
/// 获取我的留学就业订单列表
......@@ -1670,6 +1810,135 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.Success("", pageModel);
}
/// <summary>
/// 获取我的留学就业订单列表 Excel导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Obsolete]
public FileContentResult GetStudyOrderPageListStatisticsToExcel()
{
List<ExcelDataSource> slist = new List<ExcelDataSource>();
ExcelDataSource header = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value:"订单号"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"下单日期"){CellWidth=20,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"业务员"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"项目"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"人数"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"单价"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"成交单价"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"应收总额"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"实收"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"优惠金额"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"少价金额"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"退款"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"平台税金"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"待收金额"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"状态"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"学生名单"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"销售备注"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"教务备注"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"校长备注"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"经理备注"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
}
};
slist.Add(header);
string ExcelName = "留学就业统计" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
var userInfo = base.UserInfo;
ResultPageModel pageModel = JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
RB_Order_ViewModel demodel = new RB_Order_ViewModel()
{
OrderId = base.ParmJObj.GetInt("OrderId"),
GuestName = base.ParmJObj.GetStringValue("GuestName"),
StartTime = base.ParmJObj.GetStringValue("StartTime"),
EndTime = base.ParmJObj.GetStringValue("EndTime"),
Q_NotCollect = base.ParmJObj.GetInt("Q_NotCollect"),
OrderState = (OrderStateEnum)base.ParmJObj.GetInt("OrderState"),
Q_OrderState = base.ParmJObj.GetInt("Q_OrderState"),
Q_OrderBy = base.ParmJObj.GetInt("Q_OrderBy"),
PlatformTax = base.ParmJObj.GetDecimal("PlatformTax"),
EnterID = base.ParmJObj.GetInt("EnterID")
};
demodel.Group_Id = userInfo.Group_Id;
var list = orderModule.GetStudyOrderPageModule(1, 100000, out long count, demodel);
try
{
foreach (var item in list)
{
item.DueInMoney = item.PreferPrice - (item.Income - item.Refund + item.PlatformTax + item.DiscountMoney);
string GuestNameStr = string.Join(",", item?.GuestList.Select(x => x.GuestName));
ExcelDataSource firstRow = new ExcelDataSource(30)
{
ExcelRows = new List<ExcelColumn>()
{
new ExcelColumn(value: item.OrderId.ToString()){ },
new ExcelColumn(value: item.CreateTime.ToString("yyyy-MM-dd HH:mm")){ },
new ExcelColumn(value: item.EnterName){ },
new ExcelColumn(value: item.CourseName){ },
new ExcelColumn(value: item.GuestNum.ToString()){ },
new ExcelColumn(value: item.Class_Price.ToString("#0.00")){ },
new ExcelColumn(value: item.Unit_Price.ToString("#0.00")){ },
new ExcelColumn(value: item.PreferPrice.ToString("#0.00")){ },
new ExcelColumn(value: item.Income.ToString("#0.00")){ },
new ExcelColumn(value: item.DiscountMoney.ToString("#0.00")){ },
new ExcelColumn(value: item.LessPrice.ToString("#0.00")){ },
new ExcelColumn(value: item.Refund.ToString("#0.00")){ },
new ExcelColumn(value: item.PlatformTax.ToString("#0.00")){ },
new ExcelColumn(value: item.DueInMoney.ToString("#0.000000")){ },
new ExcelColumn(value: item.OrderState.ToName()){ },
new ExcelColumn(value: GuestNameStr){ },
new ExcelColumn(value: item?.SaleRemarkList.FirstOrDefault()?.Content??""){ },
new ExcelColumn(value: item?.TeacherRemarkList.FirstOrDefault()?.Content??""){ },
new ExcelColumn(value: item?.RectorRemarkList.FirstOrDefault()?.Content??""){ },
new ExcelColumn(value: item?.DirectorRemarkList.FirstOrDefault()?.Content??""){ },
}
};
slist.Add(firstRow);
}
ExcelDataSource firstRowT = new ExcelDataSource(30)
{
ExcelRows = new List<ExcelColumn>()
{
new ExcelColumn(value: "合计"){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: list.Sum(x=>x.GuestNum).ToString()){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: list.Sum(x=>x.PreferPrice).ToString("#0.00")){ },
new ExcelColumn(value: list.Sum(x=>x.Income).ToString("#0.00")){ },
new ExcelColumn(value: list.Sum(x=>x.DiscountMoney).ToString("#0.00")){ },
new ExcelColumn(value: list.Sum(x=>x.LessPrice).ToString("#0.00")){ },
new ExcelColumn(value: list.Sum(x=>x.Refund).ToString("#0.00")){ },
new ExcelColumn(value: list.Sum(x=>x.PlatformTax).ToString("#0.00")){ },
new ExcelColumn(value: list.Sum(x=>x.DueInMoney).ToString("#0.000000")){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
}
};
slist.Add(firstRowT);
var byteData = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData, "application/octet-stream", ExcelName);
}
catch (Exception ex)
{
LogHelper.Write(ex, "OutToExcelOrderStudentClassHoursList");
var byteData1 = ExcelTempLateHelper.ToExcelExtend(slist);
return File(byteData1, "application/octet-stream", ExcelName);
}
}
/// <summary>
/// 订单转交
......@@ -1727,7 +1996,7 @@ namespace Edu.WebApi.Controllers.Course
public ApiResult GetChaClassInfo()
{
var ClassId = base.ParmJObj.GetInt("ClassId");
var otherClassList = orderModule.GetClassCourseListModule(ClassId, base.UserInfo.Group_Id);
var otherClassList = orderModule.GetClassCourseListModule(ClassId);
return ApiResult.Success(data: otherClassList);
}
......
......@@ -1314,7 +1314,7 @@ namespace Edu.WebApi.Controllers.Finance
new ExcelColumn(value: item.StudentName){ },
new ExcelColumn(value: item.CreateByName){ },
new ExcelColumn(value: item.TotalClassHours.ToString()){ },
new ExcelColumn(value: Math.Round(item.TotalCourseFee / item.TotalClassHours, 2, MidpointRounding.AwayFromZero).ToString()){ },
new ExcelColumn(value: (item.TotalClassHours > 0 ? Math.Round(item.TotalCourseFee / item.TotalClassHours, 2, MidpointRounding.AwayFromZero) : 0).ToString()){ },
new ExcelColumn(value: item.TotalCourseFee.ToString()){ },
new ExcelColumn(value: item.TotalBookFee.ToString()){ },
new ExcelColumn(value: item.TotalClassFee.ToString()){ },
......@@ -1989,6 +1989,37 @@ namespace Edu.WebApi.Controllers.Finance
return ApiResult.Success("", list);
}
/// <summary>
/// 获取班级月度分摊统计
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetAllClassNowMonthStatistics() {
var userInfo = base.UserInfo;
string StartTime = base.ParmJObj.GetStringValue("StartTime");//开始时间
string EndTime = base.ParmJObj.GetStringValue("EndTime");//结束时间
if (string.IsNullOrEmpty(StartTime))
{
return ApiResult.ParamIsNull();
}
if (string.IsNullOrEmpty(EndTime))
{
return ApiResult.ParamIsNull();
}
try
{
StartTime = Convert.ToDateTime(StartTime).ToString("yyyy-MM-dd");
EndTime = Convert.ToDateTime(EndTime).ToString("yyyy-MM-dd");
}
catch (Exception)
{
return ApiResult.Failed("日期格式有误,请核实后再试");
}
var Robj = financeModule.GetAllClassNowMonthStatistics(StartTime, EndTime, userInfo);
return ApiResult.Success("", Robj);
}
#endregion
}
}
......@@ -404,7 +404,9 @@ namespace Edu.WebApi.Controllers.User
BaseStuNum = base.ParmJObj.GetInt("BaseStuNum"),
BaseHourFee = base.ParmJObj.GetDecimal("BaseHourFee"),
AuditStatus = AccountStatusEnum.Pass,
Specialty=base.ParmJObj.GetStringValue("Specialty"),
Specialty = base.ParmJObj.GetStringValue("Specialty"),
BaseHoursEnabled = base.ParmJObj.GetInt("BaseHoursEnabled", 0),
EnableTime = base.ParmJObj.GetStringValue("EnableTime")
};
extModel.TeachTag = base.ParmJObj.GetStringValue("TeachTag");
extModel.CreateBy = base.UserInfo.Id;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment