Commit 708514ec authored by 黄奎's avatar 黄奎

Merge branch 'master' of http://gitlab.oytour.com/Kui2/education

parents df504dbf 806f4d0b
...@@ -244,9 +244,9 @@ namespace Edu.Module.Course ...@@ -244,9 +244,9 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
/// <param name="dmodel"></param> /// <param name="dmodel"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_Sell_Commission_Periods_ViewModel> GetSellCommissionPeriodsList(RB_Sell_Commission_Periods_ViewModel dmodel) public List<RB_Sell_Achievements_Periods_ViewModel> GetSellAchievementsPeriodsList(RB_Sell_Achievements_Periods_ViewModel dmodel)
{ {
return sell_Commission_PeriodsRepository.GetList(dmodel); return sell_Achievements_PeriodsRepository.GetList(dmodel);
} }
/// <summary> /// <summary>
...@@ -257,19 +257,19 @@ namespace Edu.Module.Course ...@@ -257,19 +257,19 @@ namespace Edu.Module.Course
/// <param name="count"></param> /// <param name="count"></param>
/// <param name="dmodel"></param> /// <param name="dmodel"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_Sell_Commission_Periods_ViewModel> GetSellCommissionPeriodsPageList(int pageIndex, int pageSize, out long count, RB_Sell_Commission_Periods_ViewModel dmodel) public List<RB_Sell_Achievements_Periods_ViewModel> GetSellAchievementsPeriodsPageList(int pageIndex, int pageSize, out long count, RB_Sell_Achievements_Periods_ViewModel dmodel)
{ {
var list = sell_Commission_PeriodsRepository.GetPageList(pageIndex, pageSize, out count, dmodel); var list = sell_Achievements_PeriodsRepository.GetPageList(pageIndex, pageSize, out count, dmodel);
if (list.Any()) if (list.Any())
{ {
//查询财务单据 //查询财务单据
string periodsIds = string.Join(",", list.Select(x => x.Id)); string periodsIds = string.Join(",", list.Select(x => x.Id));
var financeList = financeRepository.GetListSingle(new RB_Finance_Extend() { RB_Group_Id = dmodel.Group_Id, FinanceType = 2, OtherType = 39, ReFinanceIds = periodsIds, IsSelectNormal = 1 }); var financeList = financeRepository.GetListSingle(new RB_Finance_Extend() { RB_Group_Id = dmodel.Group_Id, FinanceType = 2, OtherType = 50, ReFinanceIds = periodsIds, IsSelectNormal = 1 });
List<RB_Sell_Commission_Details_ViewModel> scList = new List<RB_Sell_Commission_Details_ViewModel>(); List<RB_Sell_Achievements_Details_ViewModel> scList = new List<RB_Sell_Achievements_Details_ViewModel>();
if (dmodel.SchoolId >= 0) if (dmodel.SchoolId >= 0)
{ {
//获取该校区应发提成 //获取该校区应发提成
scList = sell_Commission_DetailsRepository.GetSchoolCommission(dmodel.SchoolId, periodsIds); scList = sell_Achievements_DetailsRepository.GetSchoolCommission(dmodel.SchoolId, periodsIds);
} }
foreach (var item in list) foreach (var item in list)
{ {
...@@ -293,9 +293,9 @@ namespace Edu.Module.Course ...@@ -293,9 +293,9 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
/// <param name="dmodel"></param> /// <param name="dmodel"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_Sell_Commission_Details_ViewModel> GetSellCommissionUserList(RB_Sell_Commission_Details_ViewModel dmodel) public List<RB_Sell_Achievements_Details_ViewModel> GetSellAchievementsUserList(RB_Sell_Achievements_Details_ViewModel dmodel)
{ {
var list = sell_Commission_DetailsRepository.GetSellCommissionUserList(dmodel); var list = sell_Achievements_DetailsRepository.GetSellCommissionUserList(dmodel);
if (list.Any()) if (list.Any())
{ {
//查询用户 部门 校区 //查询用户 部门 校区
...@@ -322,1243 +322,166 @@ namespace Edu.Module.Course ...@@ -322,1243 +322,166 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
/// <param name="dmodel"></param> /// <param name="dmodel"></param>
/// <returns></returns> /// <returns></returns>
public decimal GetSellCommissionStatistics(RB_Sell_Commission_Details_ViewModel dmodel) public decimal GetSellAchievementsStatistics(RB_Sell_Achievements_Details_ViewModel dmodel)
{ {
return sell_Commission_DetailsRepository.GetSellCommissionStatistics(dmodel); return sell_Achievements_DetailsRepository.GetSellCommissionStatistics(dmodel);
} }
/// <summary>
/// 获取销售提成根据用户id
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Sell_Achievements_Details_ViewModel> GetSellAchievementsByUser(RB_Sell_Achievements_Details_ViewModel demodel)
{
return sell_Achievements_DetailsRepository.GetSellCommissionByUser(demodel);
}
/// <summary>
/// 确认销售提成
/// <summary> /// </summary>
/// 获取销售提成根据用户id /// <param name="model"></param>
/// </summary> /// <returns></returns>
/// <param name="demodel"></param> public bool UpdateSureSellAchievements(int UserId, int Id)
/// <returns></returns> {
public List<RB_Sell_Commission_Details_ViewModel> GetSellCommissionByUser(RB_Sell_Commission_Details_ViewModel demodel) IDictionary<string, object> fileds = new Dictionary<string, object>
{
return sell_Commission_DetailsRepository.GetSellCommissionByUser(demodel);
}
/// <summary>
/// 确认销售提成
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool UpdateSureSellCommission(int UserId, int Id)
{
IDictionary<string, object> fileds = new Dictionary<string, object>
{
{ nameof(RB_Sell_Commission_Details_ViewModel.SureStatus), 1 },
};
IList<WhereHelper> auditrecordWhereHelpers = new List<WhereHelper>
{
new WhereHelper()
{
FiledName = nameof(RB_Sell_Commission_Details_ViewModel.Id),
FiledValue = Id,
OperatorEnum = OperatorEnum.Equal
},
new WhereHelper()
{
FiledName = nameof(RB_Sell_Commission_Details_ViewModel.UserId),
FiledValue = UserId,
OperatorEnum = OperatorEnum.Equal
}
};
return sell_Commission_DetailsRepository.Update(fileds, auditrecordWhereHelpers);
}
/// <summary>
/// 获取提成统计
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Sell_Commission_Details_ViewModel> GetSellCommissionStatisticsPageList(int pageIndex, int pageSize, out long count, RB_Sell_Commission_Details_ViewModel dmodel)
{
var list = sell_Commission_DetailsRepository.GetPageList(pageIndex, pageSize, out count, dmodel);
if (list.Any())
{
//查询用户 部门 校区
string userIds = string.Join(",", list.Select(x => x.UserId).Distinct());
string deptIds = string.Join(",", list.Select(x => x.Depart_Id).Distinct());
string schoolIds = string.Join(",", list.Select(x => x.School_Id).Distinct());
var ulist = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { Group_Id = dmodel.Group_Id, QIds = userIds });
var dlist = departmentRepository.GetDepartmentListRepository(new RB_Department_ViewModel() { Group_Id = dmodel.Group_Id, QDeptIds = deptIds });
var slist = schoolRepository.GetSchoolListRepository(new RB_School_ViewModel() { Group_Id = dmodel.Group_Id, QSIds = schoolIds });
//查询出所属班级信息
string classIds = string.Join(",", list.Select(x => x.ClassId).Distinct());
var clist = classRepository.GetClassListRepository(new RB_Class_ViewModel() { Group_Id = dmodel.Group_Id, Q_ClassIds = classIds });
//查询班级类型
string classTypeIds = string.Join(",", list.Select(x => x.ClassType).Distinct());
var ctlist = class_TypeRepository.GetClassTypeListRepository(new RB_Class_Type_ViewModel() { Q_CTypeIds = classTypeIds, Group_Id = dmodel.Group_Id });
foreach (var item in list)
{
var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
item.UserName = umodel.EmployeeName + (umodel.LeaveStatus == Common.Enum.User.LeaveStatusEnum.Departure ? "离职" : "");
item.DeptName = dlist.Where(x => x.DeptId == item.Depart_Id).FirstOrDefault()?.DeptName ?? "";
item.SchoolName = slist.Where(x => x.SId == item.School_Id).FirstOrDefault()?.SName ?? "";
item.ClassName = clist.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.ClassName ?? "";
item.ClassNo = clist.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.ClassNo ?? "";
item.ClassTypeName = ctlist.Where(x => x.CTypeId == item.ClassType).FirstOrDefault()?.CTypeName ?? "";
}
}
return list;
}
/// <summary>
/// 获取用户提成明细列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Sell_Commission_Details_ViewModel> GetSellCommissionUserDetailList(RB_Sell_Commission_Details_ViewModel dmodel)
{
var list = sell_Commission_DetailsRepository.GetList(dmodel);
if (list.Any())
{
//查询用户 部门 校区
string userIds = string.Join(",", list.Select(x => x.UserId).Distinct());
string deptIds = string.Join(",", list.Select(x => x.Depart_Id).Distinct());
string schoolIds = string.Join(",", list.Select(x => x.School_Id).Distinct());
var ulist = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { Group_Id = dmodel.Group_Id, QIds = userIds });
var dlist = departmentRepository.GetDepartmentListRepository(new RB_Department_ViewModel() { Group_Id = dmodel.Group_Id, QDeptIds = deptIds });
var slist = schoolRepository.GetSchoolListRepository(new RB_School_ViewModel() { Group_Id = dmodel.Group_Id, QSIds = schoolIds });
//查询出所属班级信息
string classIds = string.Join(",", list.Select(x => x.ClassId).Distinct());
var clist = classRepository.GetClassListRepository(new RB_Class_ViewModel() { Group_Id = dmodel.Group_Id, Q_ClassIds = classIds });
//查询班级类型
string classTypeIds = string.Join(",", list.Select(x => x.ClassType).Distinct());
var ctlist = class_TypeRepository.GetClassTypeListRepository(new RB_Class_Type_ViewModel() { Q_CTypeIds = classTypeIds, Group_Id = dmodel.Group_Id });
foreach (var item in list)
{
var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
item.UserName = umodel.EmployeeName + (umodel.LeaveStatus == Common.Enum.User.LeaveStatusEnum.Departure ? "离职" : "");
item.DeptName = dlist.Where(x => x.DeptId == item.Depart_Id).FirstOrDefault()?.DeptName ?? "";
item.SchoolName = slist.Where(x => x.SId == item.School_Id).FirstOrDefault()?.SName ?? "";
item.ClassName = clist.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.ClassName ?? "";
item.ClassNo = clist.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.ClassNo ?? "";
item.ClassTypeName = ctlist.Where(x => x.CTypeId == item.ClassType).FirstOrDefault()?.CTypeName ?? "";
}
}
return list;
}
/// <summary>
/// 获取用户提成明细列表 (有当前发放次数的)
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Sell_Commission_Details_ViewModel> GetSellCommissionUserDetailList_V2(RB_Sell_Commission_Details_ViewModel dmodel)
{
var list = sell_Commission_DetailsRepository.GetSellCommissionUserDetailList(dmodel);
if (list.Any())
{
//查询用户 部门 校区
string userIds = string.Join(",", list.Select(x => x.UserId).Distinct());
string deptIds = string.Join(",", list.Select(x => x.Depart_Id).Distinct());
string schoolIds = string.Join(",", list.Select(x => x.School_Id).Distinct());
var ulist = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { Group_Id = dmodel.Group_Id, QIds = userIds });
var dlist = departmentRepository.GetDepartmentListRepository(new RB_Department_ViewModel() { Group_Id = dmodel.Group_Id, QDeptIds = deptIds });
var slist = schoolRepository.GetSchoolListRepository(new RB_School_ViewModel() { Group_Id = dmodel.Group_Id, QSIds = schoolIds });
//查询出所属班级信息
string classIds = string.Join(",", list.Select(x => x.ClassId).Distinct());
var clist = classRepository.GetClassListRepository(new RB_Class_ViewModel() { Group_Id = dmodel.Group_Id, Q_ClassIds = classIds });
//查询班级类型
string classTypeIds = string.Join(",", list.Select(x => x.ClassType).Distinct());
var ctlist = class_TypeRepository.GetClassTypeListRepository(new RB_Class_Type_ViewModel() { Q_CTypeIds = classTypeIds, Group_Id = dmodel.Group_Id });
foreach (var item in list)
{
var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
item.UserName = umodel.EmployeeName + (umodel.LeaveStatus == Common.Enum.User.LeaveStatusEnum.Departure ? "离职" : "");
item.DeptName = dlist.Where(x => x.DeptId == item.Depart_Id).FirstOrDefault()?.DeptName ?? "";
item.SchoolName = slist.Where(x => x.SId == item.School_Id).FirstOrDefault()?.SName ?? "";
item.ClassName = clist.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.ClassName ?? "";
item.ClassNo = clist.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.ClassNo ?? "";
item.ClassTypeName = ctlist.Where(x => x.CTypeId == item.ClassType).FirstOrDefault()?.CTypeName ?? "";
}
}
return list;
}
/// <summary>
/// 创建提成s
/// </summary>
/// <param name="month"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public string SetSellCommissionInfo(string month, UserInfo userInfo)
{
//首先查询该月是否已创建
var plist = sell_Commission_PeriodsRepository.GetList(new RB_Sell_Commission_Periods_ViewModel() { Group_Id = userInfo.Group_Id, Periods = month });
if (plist.Any())
{
return "当月提成已创建";
}
//查询 班级订单 1.尾款收齐 2.学生上课完成总课时超过15 %
string EDate = Convert.ToDateTime(month + "-01").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");
#region 查询内部班
var courseList = courseRepository.GetCourseListRepository(new RB_Course_ViewModel() { Group_Id = userInfo.Group_Id, CourseName = "内部班" });
string courseIds = string.Join(",", courseList.Select(x => x.CourseId));
#endregion
var orderList = orderRepository.GetAllMoneyCollectedOrderList(userInfo.Group_Id, EDate, courseIds);//开班时间 必须在选择的月份之前 要排除内部班 --------------
if (orderList.Any())
{
#region 基础数据
//查询规则列表
var rulelist = sell_Commission_RuleRepository.GetList(new RB_Sell_Commission_Rule_ViewModel() { Group_Id = userInfo.Group_Id });
//查询所有的人员
var saleIdList = orderList.Select(x => x.EnterID).Distinct().ToList();
var teacherIdList = orderList.Where(x => x.HelpEnterId > 0).Select(x => x.HelpEnterId).Distinct().ToList();
saleIdList.AddRange(teacherIdList);
var userIds = string.Join(",", saleIdList);
var UserList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { Group_Id = userInfo.Group_Id, QIds = userIds });
//查询班级信息
string classIds = string.Join(",", orderList.Select(x => x.ClassId).Distinct());
var clist = classRepository.GetClassListRepository(new RB_Class_ViewModel() { Group_Id = userInfo.Group_Id, Q_ClassIds = classIds });
//查询订单下所有学生 已完成课时
string orderIds = string.Join(",", orderList.Select(x => x.OrderId));
var CheckList = class_CheckRepository.GetClassStudentHoursListForOrderMonth(userInfo.Group_Id, orderIds);//使用月份统计的 方便下面每月消费课时计算
//查询订单下所有学员信息
var glist = order_GuestRepository.GetOrderGuestListRepository(new RB_Order_Guest_ViewModel() { Group_Id = userInfo.Group_Id, OrderIds = orderIds });
//查询这些订单 已发放提成记录
var dlist = sell_Commission_DetailsRepository.GetList(new RB_Sell_Commission_Details_ViewModel() { Group_Id = userInfo.Group_Id, OrderIds = orderIds });
#endregion
List<RB_Sell_Commission_Details_ViewModel> CurrentList = new List<RB_Sell_Commission_Details_ViewModel>();//当期的提成数据
List<RB_Order_ViewModel> UpdateOrderList = new List<RB_Order_ViewModel>();// 只记录应发总金额
foreach (var item in orderList)
{
if (item.EnterID == item.HelpEnterId)
{
item.HelpEnterId = 0;
}
#region 当前已发提成
decimal ClassCommissioned = dlist.Where(x => x.OrderId == item.OrderId).Sum(x => x.CurrentPeriodMoney);
decimal SaleCommissioned = dlist.Where(x => x.OrderId == item.OrderId && x.UserId == item.EnterID).Sum(x => x.CurrentPeriodMoney);
decimal TeacherCommissioned = dlist.Where(x => x.OrderId == item.OrderId && x.UserId == item.HelpEnterId).Sum(x => x.CurrentPeriodMoney);
decimal ExtraCommissioned = dlist.Where(x => x.OrderId == item.OrderId).Sum(x => x.CurrentExtraMoney);
#endregion
var classModel = clist.Where(x => x.ClassId == item.ClassId).FirstOrDefault();
if (classModel == null) { break; }
int EnrollType = item.RenewOrderId > 0 ? 2 : 1;
var ruleModel = rulelist.Where(x => x.ClassType == classModel.ClassType && x.EnrollType == EnrollType).FirstOrDefault();//该订单适用规则
#region 订单应发提成 (不包括 额外提成)
decimal YFCommission = 0;
if (item.CommissionType == item.CommissionTypeTH)
{
if (item.CommissionType == 1)
{
YFCommission = item.CommissionRate + item.CommissionRateTH;// 固定金额 暂时只做人民币;
}
else
{
YFCommission = Math.Round((item.PreferPrice - item.DiscountMoney + item.LessPrice) * (item.CommissionRate + item.CommissionRateTH) / 100, 2, MidpointRounding.AwayFromZero);
}
}
else
{
if (item.CommissionType == 1)
{
YFCommission = item.CommissionRate;// 固定金额 暂时只做人民币;
}
else
{
YFCommission = Math.Round((item.PreferPrice - item.DiscountMoney + item.LessPrice) * item.CommissionRate / 100, 2, MidpointRounding.AwayFromZero);
}
if (item.CommissionTypeTH == 1)
{
YFCommission += item.CommissionRateTH;// 固定金额 暂时只做人民币;
}
else
{
YFCommission += Math.Round((item.PreferPrice - item.DiscountMoney + item.LessPrice) * item.CommissionRateTH / 100, 2, MidpointRounding.AwayFromZero);
}
}
if (item.LessPrice > 0)
{
YFCommission -= item.LessPrice;
}
if (YFCommission == 0 && ClassCommissioned == 0)
{
break;
}
#endregion
//销售 + 老师 应发多少提成
decimal saleMoney = 0, teacherMoney = 0;
if (item.HelpEnterId > 0)
{
saleMoney = Math.Round(YFCommission * ruleModel.SalesRate / 100, 2, MidpointRounding.AwayFromZero);
teacherMoney = Math.Round(YFCommission * (100 - ruleModel.SalesRate) / 100, 2, MidpointRounding.AwayFromZero);
if (saleMoney + teacherMoney < YFCommission)
{
saleMoney += YFCommission - saleMoney - teacherMoney;//多余的 加到销售提成里
}
}
else
{
saleMoney = YFCommission;
}
#region 计算课时
var g3list = glist.Where(x => x.OrderId == item.OrderId).ToList();
//查询这几个学生累计课时
decimal TotalLearn = CheckList.Where(x => x.OrderId == item.OrderId && x.MonthDate <= Convert.ToDateTime(EDate)).Sum(x => x.CurrentDeductionHours);//累计消费课时 (要查询当前发放提成日期) ld 07-02调整
decimal TotalHours = g3list.Sum(x => x.TotalHours);// 直接根据学生表 总课时计算 (必须签到课时 = 总课时 才发完最后一个月的)
#endregion
#region 额外提成
decimal ExtraCommission = item.ExtraRewardMoney - item.ExtraDeductMoney - item.ExtraCommissionMoney;//额外需要发放的提成
//额外奖励 直接发给销售
if (ExtraCommission != 0)
{
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.EnterID,
OrderId = item.OrderId,
CurrentExtraMoney = ExtraCommission,
Remark = ExtraCommission > 0 ? "额外奖励" + ExtraCommission + "金额" : "额外扣除" + (ExtraCommission) + "金额",
CurrentPeriodMoney = 0,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = saleMoney,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种只额外奖励的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = SaleCommissioned + ExtraCommissioned,
SalesRate = 0,
TeacherRate = 0,
AssistantRate = 0,
FirstRate = 0,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
var upmodel = UpdateOrderList.Where(x => x.OrderId == item.OrderId).FirstOrDefault();
if (upmodel == null)
{
UpdateOrderList.Add(new RB_Order_ViewModel()
{
OrderId = item.OrderId,
CommissionMoney = YFCommission + (item.ExtraRewardMoney - item.ExtraDeductMoney)
});
}
}
#endregion
if (YFCommission == ClassCommissioned)
{
//正好提成已发放完成 直接更新 订单 已发放Ok
var upmodel = UpdateOrderList.Where(x => x.OrderId == item.OrderId).FirstOrDefault();
if (upmodel == null)
{
UpdateOrderList.Add(new RB_Order_ViewModel()
{
OrderId = item.OrderId,
CommissionMoney = YFCommission + (item.ExtraRewardMoney - item.ExtraDeductMoney)
});
}
}
else if (YFCommission < ClassCommissioned)
{
//可能因为调整应收 导致提成多发 需要补回来 补的时候 又分 销售+老师
if (item.HelpEnterId > 0)
{
if (saleMoney < SaleCommissioned)
{
decimal saleMoney1 = saleMoney - SaleCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.EnterID,
OrderId = item.OrderId,
CurrentPeriodMoney = saleMoney1,
IsDeduction = 1,
Remark = "当前提成应发:" + saleMoney + ",已实发:" + SaleCommissioned + ",销售应补金额:" + saleMoney1,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = saleMoney,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种补提成的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = SaleCommissioned + ExtraCommissioned,
SalesRate = 0,
TeacherRate = 0,
AssistantRate = 0,
FirstRate = 0,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
if (teacherMoney < TeacherCommissioned)
{
decimal teacherMoney1 = teacherMoney - TeacherCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.HelpEnterId,
OrderId = item.OrderId,
CurrentPeriodMoney = teacherMoney1,
IsDeduction = 1,
Remark = "当前提成应发:" + teacherMoney + ",已实发:" + TeacherCommissioned + ",教师应补金额:" + teacherMoney1,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = teacherMoney,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种补提成的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = TeacherCommissioned,
SalesRate = 0,
TeacherRate = 0,
AssistantRate = 0,
FirstRate = 0,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
}
else
{
//销售全占
decimal BMoney = YFCommission - ClassCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.EnterID,
OrderId = item.OrderId,
CurrentPeriodMoney = BMoney,
IsDeduction = 1,
Remark = "当前提成应发:" + YFCommission + ",已实发:" + ClassCommissioned + ",销售应补金额:" + BMoney,
CurrentExtraMoney = 0,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = YFCommission,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种补提成的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = SaleCommissioned + ExtraCommissioned,
SalesRate = 0,
TeacherRate = 0,
AssistantRate = 0,
FirstRate = 0,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
var upmodel = UpdateOrderList.Where(x => x.OrderId == item.OrderId).FirstOrDefault();
if (upmodel == null)
{
UpdateOrderList.Add(new RB_Order_ViewModel()
{
OrderId = item.OrderId,
CommissionMoney = YFCommission + (item.ExtraRewardMoney - item.ExtraDeductMoney)
});
}
}
else
{
#region 班级提成
//查询是否订单下所有学员都已退学
var g2list = glist.Where(x => x.OrderId == item.OrderId).ToList();
if (g2list.Where(x => x.GuestState == GuestStateEnum.DropOut).Count() == item.GuestNum)
{
//所有学生都退学了 直接计算提成 全部一次性发放
if (item.HelpEnterId > 0)
{
if (saleMoney > SaleCommissioned)
{
decimal saleMoney1 = saleMoney - SaleCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.EnterID,
OrderId = item.OrderId,
CurrentPeriodMoney = saleMoney1,
Remark = "当前订单学生退学,直接发放剩余提成:" + saleMoney1,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = saleMoney,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种都退学的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = SaleCommissioned + ExtraCommissioned,
SalesRate = 0,
TeacherRate = 0,
AssistantRate = 0,
FirstRate = 0,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
if (teacherMoney < TeacherCommissioned)
{
decimal teacherMoney1 = teacherMoney - TeacherCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.HelpEnterId,
OrderId = item.OrderId,
CurrentPeriodMoney = teacherMoney1,
Remark = "当前订单学生退学,直接发放剩余提成:" + teacherMoney1,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = teacherMoney,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种都退学的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = TeacherCommissioned + ExtraCommissioned,
SalesRate = 0,
TeacherRate = 0,
AssistantRate = 0,
FirstRate = 0,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
}
else
{
//销售全占
decimal BMoney = YFCommission - ClassCommissioned;
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.EnterID,
OrderId = item.OrderId,
CurrentPeriodMoney = BMoney,
Remark = "当前订单学生退学,直接发放剩余提成:" + BMoney,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = YFCommission,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种补提成的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = SaleCommissioned + ExtraCommissioned,
SalesRate = 0,
TeacherRate = 0,
AssistantRate = 0,
FirstRate = 0,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
var upmodel = UpdateOrderList.Where(x => x.OrderId == item.OrderId).FirstOrDefault();
if (upmodel == null)
{
UpdateOrderList.Add(new RB_Order_ViewModel()
{
OrderId = item.OrderId,
CommissionMoney = YFCommission + (item.ExtraRewardMoney - item.ExtraDeductMoney)
});
}
}
else
{
//验证是否满足 上课课时超15%
if (TotalLearn > TotalHours * Convert.ToDecimal(Config.SellCommissionFFBL))
{
//查询该订单 已发提成记录
//先查询销售的
var salelist = dlist.Where(x => x.OrderId == item.OrderId && x.UserId == item.EnterID).ToList();
if (salelist.Any())
{
//SetCommissionNext(month, CheckList, CurrentList, item, classModel, TotalHours, saleMoney, salelist, item.EnterID, true);
}
else
{
//直接 发首次提成
decimal FirstMoney = Math.Round(saleMoney * ruleModel.FirstRate / 100, 2, MidpointRounding.AwayFromZero);
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.EnterID,
OrderId = item.OrderId,
CurrentPeriodMoney = FirstMoney,
IsFirstCommission = 1,
Remark = "首次发放提成比例:" + ruleModel.FirstRate,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = saleMoney,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种首次发放提成的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = SaleCommissioned + ExtraCommissioned,
SalesRate = ruleModel.SalesRate,
TeacherRate = ruleModel.TeacherRate,
AssistantRate = ruleModel.AssistantRate,
FirstRate = ruleModel.FirstRate,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
if (item.HelpEnterId > 0)
{
//给老师发提成
var teacherlist = dlist.Where(x => x.OrderId == item.OrderId && x.UserId == item.HelpEnterId).ToList();
if (teacherlist.Any())
{
//SetCommissionNext(month, CheckList, CurrentList, item, classModel, TotalHours, teacherMoney, teacherlist, item.HelpEnterId, false);
}
else
{
//直接 发首次提成
decimal FirstMoney = Math.Round(teacherMoney * ruleModel.FirstRate / 100, 2, MidpointRounding.AwayFromZero);
CurrentList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = item.HelpEnterId,
OrderId = item.OrderId,
CurrentPeriodMoney = FirstMoney,
IsFirstCommission = 1,
Remark = "首次发放提成比例:" + ruleModel.FirstRate,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = teacherMoney,
OtherMoney = item.ExtraRewardMoney,
BackMoney = item.ExtraDeductMoney,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种首次发的 没有课时消费
IsContinueClass = item.RenewOrderId > 0 ? 1 : 0,
GiveOutMoney = TeacherCommissioned + ExtraCommissioned,
SalesRate = ruleModel.SalesRate,
TeacherRate = ruleModel.TeacherRate,
AssistantRate = ruleModel.AssistantRate,
FirstRate = ruleModel.FirstRate,
DeductionMoney = 0,
DeductionExtraMoney = 0
});
}
}
var upmodel = UpdateOrderList.Where(x => x.OrderId == item.OrderId).FirstOrDefault();
if (upmodel == null)
{
UpdateOrderList.Add(new RB_Order_ViewModel()
{
OrderId = item.OrderId,
CommissionMoney = YFCommission + (item.ExtraRewardMoney - item.ExtraDeductMoney)
});
}
}
}
#endregion
}
}
#region 开始遍历
List<RB_Sell_Commission_Deduction_ViewModel> DeductionList = new List<RB_Sell_Commission_Deduction_ViewModel>();//抵扣详情
var ExtraList = CurrentList.Where(x => x.CurrentExtraMoney > 0).ToList();//额外提成的
var NorList = CurrentList.Where(x => x.IsDeduction != 1 && x.CurrentExtraMoney == 0).ToList();//正常的
var DeList = CurrentList.Where(x => x.IsDeduction == 1).ToList();//需抵扣的 负数存的
var DeExtraList = CurrentList.Where(x => x.CurrentExtraMoney < 0).ToList();//额外奖励 需抵扣的 负数存的
//先把正常订单 额外奖励加上去
foreach (var qitem in ExtraList)
{
var norModel = NorList.Where(x => x.OrderId == qitem.OrderId && x.UserId == qitem.UserId).FirstOrDefault();
if (norModel == null)
{
NorList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = qitem.UserId,
OrderId = qitem.OrderId,
CurrentPeriodMoney = 0,
CurrentExtraMoney = qitem.CurrentExtraMoney,
AssistantRate = qitem.AssistantRate,
Remark = qitem.Remark,
DeductionExtraMoney = qitem.DeductionExtraMoney,
BackMoney = qitem.BackMoney,
ClassId = qitem.ClassId,
ClassName = qitem.ClassName,
ClassType = qitem.ClassType,
ClassTypeName = qitem.ClassTypeName,
CommissionMoney = qitem.CommissionMoney,
CurrentHours = qitem.CurrentHours,
DeductionMoney = qitem.DeductionMoney,
DeductionOrder = qitem.DeductionOrder,
Depart_Id = qitem.Depart_Id,
DeptName = qitem.DeptName,
FirstRate = qitem.FirstRate,
GiveOutMoney = qitem.GiveOutMoney,
Group_Id = qitem.Group_Id,
Id = qitem.Id,
IsContinueClass = qitem.IsContinueClass,
IsDeduction = qitem.IsDeduction,
IsFirstCommission = qitem.IsFirstCommission,
OrderIds = qitem.OrderIds,
OtherMoney = qitem.OtherMoney,
PeriodId = qitem.PeriodId,
Periods = qitem.Periods,
SalesRate = qitem.SalesRate,
School_Id = qitem.School_Id,
StudentCount = qitem.StudentCount,
TeacherRate = qitem.TeacherRate,
TotalHours = qitem.TotalHours,
TotalLearn = qitem.TotalLearn
});
}
else
{
norModel.CurrentExtraMoney = qitem.CurrentExtraMoney;
norModel.Remark += ";" + qitem.Remark;
}
}
//遍历班级提成需抵扣的
foreach (var xdkitem in DeList)
{
var nordList = NorList.Where(x => x.UserId == xdkitem.UserId).OrderBy(x => x.OrderId).ToList();
if (nordList.Any())
{
//从订单一次开始抵扣 抵扣了之后 原金额不动, 抵扣字段增加
foreach (var dkitem in nordList)
{
if (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney >= 0)
{
//补交完了 继续下一个
break;
}
if ((dkitem.CurrentPeriodMoney + dkitem.DeductionMoney) <= 0 && dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney <= 0)
{
//已经没有钱可以抵扣了 继续下一个 (班级提成 + 额外奖励)
continue;
}
if ((xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney) + (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney) >= 0)
{
//全部抵扣 用需抵扣
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionMoney = 0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney),
DeductionExtraMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 帮订单" + xdkitem.OrderId + " 抵扣" + (0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney));
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 帮补交" + (0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney));
//更新数据
dkitem.DeductionMoney += xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney;//存负数 表抵扣了这么多
xdkitem.DeductionMoney += 0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney);//正数
}
else
{
if ((dkitem.CurrentPeriodMoney + dkitem.DeductionMoney) > 0)
{
//部分抵扣 用正常的
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionMoney = (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney),
DeductionExtraMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 帮补交" + (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 帮订单" + xdkitem.OrderId + " 抵扣" + (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);
//更新数据
xdkitem.DeductionMoney += (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);//正数
dkitem.DeductionMoney += 0 - (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);//存负数 表抵扣了这么多
}
//继续抵扣奖励
if (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney > 0)
{
if ((xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney) + (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney) >= 0)
{
//可以抵扣完
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionExtraMoney = 0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney),
DeductionMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 使用额外奖励帮订单" + xdkitem.OrderId + " 抵扣" + (0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney));
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 使用额外奖励帮补交" + (0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney));
//更新数据
dkitem.DeductionExtraMoney += xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney;//存负数 表抵扣了这么多
xdkitem.DeductionMoney += 0 - (xdkitem.CurrentPeriodMoney + xdkitem.DeductionMoney);//正数
}
else
{
if ((dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney) > 0)
{
//部分抵扣 用正常的
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionMoney = (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney),
DeductionExtraMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 使用额外奖励帮补交" + (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 使用额外奖励帮订单" + xdkitem.OrderId + " 抵扣" + (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);
//更新数据
xdkitem.DeductionMoney += (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);//正数
dkitem.DeductionExtraMoney += 0 - (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);//存负数 表抵扣了这么多
}
}
}
}
}
}
}
//遍历额外奖励需抵扣的 这个一般应该不会有 概率非常小
foreach (var xdkitem in DeExtraList)
{
var nordList = NorList.Where(x => x.UserId == xdkitem.UserId).OrderBy(x => x.OrderId).ToList();
if (nordList.Any())
{
//从订单一次开始抵扣 抵扣了之后 原金额不动, 抵扣字段增加
foreach (var dkitem in nordList)
{
if (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney >= 0)
{
//补交完了 继续下一个
break;
}
if ((dkitem.CurrentPeriodMoney + dkitem.DeductionMoney) <= 0 && dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney <= 0)
{
//已经没有钱可以抵扣了 继续下一个 (班级提成 + 额外奖励)
continue;
}
if ((xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney) + (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney) >= 0)
{
//全部抵扣 用需抵扣
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionMoney = 0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney),
DeductionExtraMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 帮订单" + xdkitem.OrderId + " 抵扣" + (0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney));
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 帮补交" + (0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney));
//更新数据
dkitem.DeductionMoney += xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney;//存负数 表抵扣了这么多
xdkitem.DeductionExtraMoney += 0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney);//正数
}
else
{
if ((dkitem.CurrentPeriodMoney + dkitem.DeductionMoney) > 0)
{
//部分抵扣 用正常的
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionMoney = (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney),
DeductionExtraMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 帮补交" + (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 帮订单" + xdkitem.OrderId + " 抵扣" + (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);
//更新数据
xdkitem.DeductionExtraMoney += (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);//正数
dkitem.DeductionMoney += 0 - (dkitem.CurrentPeriodMoney + dkitem.DeductionMoney);//存负数 表抵扣了这么多
}
//继续抵扣奖励
if (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney > 0)
{
if ((xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney) + (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney) >= 0)
{
//可以抵扣完
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionExtraMoney = 0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney),
DeductionMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 使用额外奖励帮订单" + xdkitem.OrderId + " 抵扣" + (0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney));
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 使用额外奖励帮补交" + (0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney));
//更新数据
dkitem.DeductionExtraMoney += xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney;//存负数 表抵扣了这么多
xdkitem.DeductionExtraMoney += 0 - (xdkitem.CurrentExtraMoney + xdkitem.DeductionExtraMoney);//正数
}
else
{
if ((dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney) > 0)
{
//部分抵扣 用正常的
DeductionList.Add(new RB_Sell_Commission_Deduction_ViewModel()
{
OrderId = xdkitem.OrderId,
SourceId = dkitem.OrderId,
Type = 1,
DeductionMoney = (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney),
DeductionExtraMoney = 0,
Group_Id = userInfo.Group_Id,
Remark = ""
});
xdkitem.Remark += "; 订单" + dkitem.OrderId + " 使用额外奖励帮补交" + (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);
if (dkitem.OrderId != xdkitem.OrderId)
dkitem.Remark += "; 使用额外奖励帮订单" + xdkitem.OrderId + " 抵扣" + (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);
//更新数据
xdkitem.DeductionExtraMoney += (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);//正数
dkitem.DeductionExtraMoney += 0 - (dkitem.CurrentExtraMoney + dkitem.DeductionExtraMoney);//存负数 表抵扣了这么多
}
}
}
}
}
}
}
//这里 DeList DeExtraList 可能会有重复数据 这里需要排除 ----------------------------------
foreach (var qitem in DeList)
{ {
qitem.CurrentPeriodMoney = 0 - qitem.DeductionMoney;//直接赋值 抵扣的负数 这样子 当期应发=0 { nameof(RB_Sell_Commission_Details_ViewModel.SureStatus), 1 },
var norModel = NorList.Where(x => x.OrderId == qitem.OrderId && x.UserId == qitem.UserId).FirstOrDefault();
if (norModel == null)
{
NorList.Add(new RB_Sell_Commission_Details_ViewModel()
{
UserId = qitem.UserId,
OrderId = qitem.OrderId,
CurrentPeriodMoney = qitem.CurrentPeriodMoney,
CurrentExtraMoney = qitem.CurrentExtraMoney,
DeductionMoney = qitem.DeductionMoney,
DeductionExtraMoney = qitem.DeductionExtraMoney,
Remark = qitem.Remark,
AssistantRate = qitem.AssistantRate, };
BackMoney = qitem.BackMoney, IList<WhereHelper> auditrecordWhereHelpers = new List<WhereHelper>
ClassId = qitem.ClassId,
ClassName = qitem.ClassName,
ClassType = qitem.ClassType,
ClassTypeName = qitem.ClassTypeName,
CommissionMoney = qitem.CommissionMoney,
CurrentHours = qitem.CurrentHours,
DeductionOrder = qitem.DeductionOrder,
Depart_Id = qitem.Depart_Id,
DeptName = qitem.DeptName,
FirstRate = qitem.FirstRate,
GiveOutMoney = qitem.GiveOutMoney,
Group_Id = qitem.Group_Id,
Id = qitem.Id,
IsContinueClass = qitem.IsContinueClass,
IsDeduction = qitem.IsDeduction,
IsFirstCommission = qitem.IsFirstCommission,
OrderIds = qitem.OrderIds,
OtherMoney = qitem.OtherMoney,
PeriodId = qitem.PeriodId,
Periods = qitem.Periods,
SalesRate = qitem.SalesRate,
School_Id = qitem.School_Id,
StudentCount = qitem.StudentCount,
TeacherRate = qitem.TeacherRate,
TotalHours = qitem.TotalHours,
TotalLearn = qitem.TotalLearn
});
}
else
{ {
if (qitem.OrderId == norModel.OrderId) new WhereHelper()
{ {
norModel.CurrentPeriodMoney = qitem.CurrentPeriodMoney; FiledName = nameof(RB_Sell_Commission_Details_ViewModel.Id),
norModel.DeductionMoney = qitem.DeductionMoney; FiledValue = Id,
norModel.Remark += ";" + qitem.Remark; OperatorEnum = OperatorEnum.Equal
} },
else new WhereHelper()
{ {
norModel.CurrentPeriodMoney += qitem.CurrentPeriodMoney; FiledName = nameof(RB_Sell_Commission_Details_ViewModel.UserId),
norModel.CurrentExtraMoney += qitem.CurrentExtraMoney; FiledValue = UserId,
norModel.DeductionMoney += qitem.DeductionMoney; OperatorEnum = OperatorEnum.Equal
norModel.DeductionExtraMoney += qitem.DeductionExtraMoney;
norModel.Remark += ";" + qitem.Remark;
} }
} };
} return sell_Achievements_DetailsRepository.Update(fileds, auditrecordWhereHelpers);
}
foreach (var qitem in DeExtraList) /// <summary>
{ /// 获取提成统计
qitem.CurrentExtraMoney = 0 - qitem.DeductionExtraMoney;//直接赋值 抵扣的负数 这样子 当期应发=0 /// </summary>
var norModel = NorList.Where(x => x.OrderId == qitem.OrderId && x.UserId == qitem.UserId).FirstOrDefault(); /// <param name="pageIndex"></param>
if (norModel == null) /// <param name="pageSize"></param>
{ /// <param name="count"></param>
NorList.Add(new RB_Sell_Commission_Details_ViewModel() /// <param name="dmodel"></param>
{ /// <returns></returns>
UserId = qitem.UserId, public List<RB_Sell_Achievements_Details_ViewModel> GetSellAchievementsStatisticsPageList(int pageIndex, int pageSize, out long count, RB_Sell_Achievements_Details_ViewModel dmodel)
OrderId = qitem.OrderId, {
CurrentPeriodMoney = qitem.CurrentPeriodMoney, var list = sell_Achievements_DetailsRepository.GetPageList(pageIndex, pageSize, out count, dmodel);
CurrentExtraMoney = qitem.CurrentExtraMoney, if (list.Any())
DeductionMoney = qitem.DeductionMoney, {
DeductionExtraMoney = qitem.DeductionExtraMoney, //查询用户 部门 校区
Remark = qitem.Remark, string userIds = string.Join(",", list.Select(x => x.UserId).Distinct());
string deptIds = string.Join(",", list.Select(x => x.Depart_Id).Distinct());
string schoolIds = string.Join(",", list.Select(x => x.School_Id).Distinct());
var ulist = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { Group_Id = dmodel.Group_Id, QIds = userIds });
var dlist = departmentRepository.GetDepartmentListRepository(new RB_Department_ViewModel() { Group_Id = dmodel.Group_Id, QDeptIds = deptIds });
var slist = schoolRepository.GetSchoolListRepository(new RB_School_ViewModel() { Group_Id = dmodel.Group_Id, QSIds = schoolIds });
//查询出所属班级信息
string classIds = string.Join(",", list.Select(x => x.ClassId).Distinct());
var clist = classRepository.GetClassListRepository(new RB_Class_ViewModel() { Group_Id = dmodel.Group_Id, Q_ClassIds = classIds });
//查询班级类型
string classTypeIds = string.Join(",", list.Select(x => x.ClassType).Distinct());
var ctlist = class_TypeRepository.GetClassTypeListRepository(new RB_Class_Type_ViewModel() { Q_CTypeIds = classTypeIds, Group_Id = dmodel.Group_Id });
AssistantRate = qitem.AssistantRate, foreach (var item in list)
BackMoney = qitem.BackMoney, {
ClassId = qitem.ClassId, var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
ClassName = qitem.ClassName, item.UserName = umodel.EmployeeName + (umodel.LeaveStatus == Common.Enum.User.LeaveStatusEnum.Departure ? "离职" : "");
ClassType = qitem.ClassType, item.DeptName = dlist.Where(x => x.DeptId == item.Depart_Id).FirstOrDefault()?.DeptName ?? "";
ClassTypeName = qitem.ClassTypeName, item.SchoolName = slist.Where(x => x.SId == item.School_Id).FirstOrDefault()?.SName ?? "";
CommissionMoney = qitem.CommissionMoney, item.ClassName = clist.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.ClassName ?? "";
CurrentHours = qitem.CurrentHours, item.ClassNo = clist.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.ClassNo ?? "";
DeductionOrder = qitem.DeductionOrder, item.ClassTypeName = ctlist.Where(x => x.CTypeId == item.ClassType).FirstOrDefault()?.CTypeName ?? "";
Depart_Id = qitem.Depart_Id,
DeptName = qitem.DeptName,
FirstRate = qitem.FirstRate,
GiveOutMoney = qitem.GiveOutMoney,
Group_Id = qitem.Group_Id,
Id = qitem.Id,
IsContinueClass = qitem.IsContinueClass,
IsDeduction = qitem.IsDeduction,
IsFirstCommission = qitem.IsFirstCommission,
OrderIds = qitem.OrderIds,
OtherMoney = qitem.OtherMoney,
PeriodId = qitem.PeriodId,
Periods = qitem.Periods,
SalesRate = qitem.SalesRate,
School_Id = qitem.School_Id,
StudentCount = qitem.StudentCount,
TeacherRate = qitem.TeacherRate,
TotalHours = qitem.TotalHours,
TotalLearn = qitem.TotalLearn
});
}
else
{
if (qitem.OrderId == norModel.OrderId)
{
norModel.CurrentExtraMoney = qitem.CurrentExtraMoney;
norModel.DeductionExtraMoney = qitem.DeductionExtraMoney;
norModel.Remark += ";" + qitem.Remark;
}
else
{
norModel.CurrentPeriodMoney += qitem.CurrentPeriodMoney;
norModel.CurrentExtraMoney += qitem.CurrentExtraMoney;
norModel.DeductionMoney += qitem.DeductionMoney;
norModel.DeductionExtraMoney += qitem.DeductionExtraMoney;
norModel.Remark += ";" + qitem.Remark;
}
}
} }
}
return list;
}
#endregion /// <summary>
/// 获取用户提成明细列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Sell_Achievements_Details_ViewModel> GetSellAchievementsUserDetailList(RB_Sell_Achievements_Details_ViewModel dmodel)
{
var list = sell_Achievements_DetailsRepository.GetList(dmodel);
if (list.Any())
{
//查询用户 部门 校区
string userIds = string.Join(",", list.Select(x => x.UserId).Distinct());
string deptIds = string.Join(",", list.Select(x => x.Depart_Id).Distinct());
string schoolIds = string.Join(",", list.Select(x => x.School_Id).Distinct());
var ulist = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { Group_Id = dmodel.Group_Id, QIds = userIds });
var dlist = departmentRepository.GetDepartmentListRepository(new RB_Department_ViewModel() { Group_Id = dmodel.Group_Id, QDeptIds = deptIds });
var slist = schoolRepository.GetSchoolListRepository(new RB_School_ViewModel() { Group_Id = dmodel.Group_Id, QSIds = schoolIds });
//查询出所属班级信息
string classIds = string.Join(",", list.Select(x => x.ClassId).Distinct());
var clist = classRepository.GetClassListRepository(new RB_Class_ViewModel() { Group_Id = dmodel.Group_Id, Q_ClassIds = classIds });
//查询班级类型
string classTypeIds = string.Join(",", list.Select(x => x.ClassType).Distinct());
var ctlist = class_TypeRepository.GetClassTypeListRepository(new RB_Class_Type_ViewModel() { Q_CTypeIds = classTypeIds, Group_Id = dmodel.Group_Id });
#region 开始创建 foreach (var item in list)
var trans = sell_Commission_PeriodsRepository.DbTransaction;
try
{ {
int PeriodsId = sell_Commission_PeriodsRepository.Insert(new RB_Sell_Commission_Periods() var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
{ item.UserName = umodel.EmployeeName + (umodel.LeaveStatus == Common.Enum.User.LeaveStatusEnum.Departure ? "离职" : "");
Id = 0, item.DeptName = dlist.Where(x => x.DeptId == item.Depart_Id).FirstOrDefault()?.DeptName ?? "";
CreateBy = userInfo.Id, item.SchoolName = slist.Where(x => x.SId == item.School_Id).FirstOrDefault()?.SName ?? "";
CreateTime = DateTime.Now, item.ClassName = clist.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.ClassName ?? "";
Financials = "", item.ClassNo = clist.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.ClassNo ?? "";
Group_Id = userInfo.Group_Id, item.ClassTypeName = ctlist.Where(x => x.CTypeId == item.ClassType).FirstOrDefault()?.CTypeName ?? "";
Name = month + "期提成", }
Periods = month, }
SumPrice = 0 return list;
}, trans); }
if (PeriodsId > 0)
{
foreach (var qitem in NorList)
{
var userModel = UserList.Where(x => x.Id == qitem.UserId).FirstOrDefault();
qitem.Depart_Id = userModel?.Dept_Id ?? 0;
qitem.School_Id = userModel?.School_Id ?? 0;
qitem.Group_Id = userInfo.Group_Id;
qitem.PeriodId = PeriodsId;
sell_Commission_DetailsRepository.Insert(qitem, trans);
}
#region 屏蔽的
//foreach (var qitem in DeList)
//{
// var userModel = UserList.Where(x => x.Id == qitem.UserId).FirstOrDefault();
// qitem.Depart_Id = userModel?.Dept_Id ?? 0;
// qitem.School_Id = userModel?.School_Id ?? 0;
// qitem.Group_Id = userInfo.Group_Id;
// qitem.PeriodId = PeriodsId;
// qitem.CurrentPeriodMoney = 0 - qitem.DeductionMoney;//直接赋值 抵扣的负数 这样子 当期应发=0
// sell_Commission_DetailsRepository.Insert(qitem, trans);
//}
//foreach (var qitem in DeExtraList)
//{
// var userModel = UserList.Where(x => x.Id == qitem.UserId).FirstOrDefault();
// qitem.Depart_Id = userModel?.Dept_Id ?? 0;
// qitem.School_Id = userModel?.School_Id ?? 0;
// qitem.Group_Id = userInfo.Group_Id;
// qitem.PeriodId = PeriodsId;
// qitem.CurrentExtraMoney = 0 - qitem.DeductionExtraMoney;//直接赋值 抵扣的负数 这样子 当期应发=0
// sell_Commission_DetailsRepository.Insert(qitem, trans);
//}
#endregion
#region 计算累计应发
decimal SumPrice = NorList.Sum(x => x.CurrentPeriodMoney + x.CurrentExtraMoney + x.CurrentExtraMoney + x.DeductionExtraMoney);
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Sell_Commission_Periods.SumPrice),SumPrice}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Sell_Commission_Periods.Id),
FiledValue=PeriodsId,
OperatorEnum=OperatorEnum.Equal
}
};
sell_Commission_PeriodsRepository.Update(keyValues, wheres, trans);
#endregion
//抵扣的明细
DateTime dtNow = DateTime.Now;
foreach (var qitem in DeductionList)
{
qitem.PeriodsId = PeriodsId;
qitem.CreateBy = userInfo.Id;
qitem.CreateTime = dtNow;
sell_Commission_DeductionRepository.Insert(qitem, trans);
}
}
sell_Commission_PeriodsRepository.DBSession.Commit();
#region 订单更新 /// <summary>
//再次查询所有订单的 /// 获取用户提成明细列表 (有当前发放次数的)
//查询这些订单 已发放提成记录 /// </summary>
string torderIds = string.Join(",", UpdateOrderList.Select(x => x.OrderId).Distinct()); /// <param name="dmodel"></param>
var dtlist = sell_Commission_DetailsRepository.GetList(new RB_Sell_Commission_Details_ViewModel() { Group_Id = userInfo.Group_Id, OrderIds = torderIds }); /// <returns></returns>
foreach (var item in UpdateOrderList) public List<RB_Sell_Achievements_Details_ViewModel> GetSellAchievementsUserDetailList_V2(RB_Sell_Achievements_Details_ViewModel dmodel)
{ {
//求实际的 var list = sell_Achievements_DetailsRepository.GetSellCommissionUserDetailList(dmodel);
decimal ClassCommissioned = dtlist.Where(x => x.OrderId == item.OrderId).Sum(x => x.CurrentPeriodMoney); if (list.Any())
decimal ExtraCommissioned = dtlist.Where(x => x.OrderId == item.OrderId).Sum(x => x.CurrentExtraMoney); {
decimal BackMoney = 0; //查询用户 部门 校区
int IsCommissionGiveOK = 0; string userIds = string.Join(",", list.Select(x => x.UserId).Distinct());
if (item.CommissionMoney < ClassCommissioned + ExtraCommissioned) string deptIds = string.Join(",", list.Select(x => x.Depart_Id).Distinct());
{ string schoolIds = string.Join(",", list.Select(x => x.School_Id).Distinct());
//表示扣多了 var ulist = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { Group_Id = dmodel.Group_Id, QIds = userIds });
BackMoney = ClassCommissioned + ExtraCommissioned - item.CommissionMoney; var dlist = departmentRepository.GetDepartmentListRepository(new RB_Department_ViewModel() { Group_Id = dmodel.Group_Id, QDeptIds = deptIds });
} var slist = schoolRepository.GetSchoolListRepository(new RB_School_ViewModel() { Group_Id = dmodel.Group_Id, QSIds = schoolIds });
if (item.CommissionMoney == ClassCommissioned + ExtraCommissioned) //查询出所属班级信息
{ string classIds = string.Join(",", list.Select(x => x.ClassId).Distinct());
//表示扣多了 var clist = classRepository.GetClassListRepository(new RB_Class_ViewModel() { Group_Id = dmodel.Group_Id, Q_ClassIds = classIds });
IsCommissionGiveOK = 1;//发放完毕 //查询班级类型
} string classTypeIds = string.Join(",", list.Select(x => x.ClassType).Distinct());
var ctlist = class_TypeRepository.GetClassTypeListRepository(new RB_Class_Type_ViewModel() { Q_CTypeIds = classTypeIds, Group_Id = dmodel.Group_Id });
Dictionary<string, object> keyValues = new Dictionary<string, object>() { foreach (var item in list)
{ nameof(RB_Order_ViewModel.CommissionMoney),ClassCommissioned},
{ nameof(RB_Order_ViewModel.IsCommissionGive),1},
{ nameof(RB_Order_ViewModel.CommissionBack),BackMoney},
{ nameof(RB_Order_ViewModel.ExtraCommissionMoney),ExtraCommissioned},
{ nameof(RB_Order_ViewModel.IsCommissionGiveOK),IsCommissionGiveOK}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Order_ViewModel.OrderId),
FiledValue=item.OrderId,
OperatorEnum=OperatorEnum.Equal
}
};
orderRepository.Update(keyValues, wheres);
}
#endregion
}
catch (Exception ex)
{ {
LogHelper.Write(ex, "SetSellCommissionInfo"); var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
sell_Commission_PeriodsRepository.DBSession.Rollback(); item.UserName = umodel.EmployeeName + (umodel.LeaveStatus == Common.Enum.User.LeaveStatusEnum.Departure ? "离职" : "");
return "出错了,请联系管理员"; item.DeptName = dlist.Where(x => x.DeptId == item.Depart_Id).FirstOrDefault()?.DeptName ?? "";
item.SchoolName = slist.Where(x => x.SId == item.School_Id).FirstOrDefault()?.SName ?? "";
item.ClassName = clist.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.ClassName ?? "";
item.ClassNo = clist.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.ClassNo ?? "";
item.ClassTypeName = ctlist.Where(x => x.CTypeId == item.ClassType).FirstOrDefault()?.CTypeName ?? "";
} }
#endregion
} }
return list;
return "";
} }
/// <summary> /// <summary>
...@@ -1685,24 +608,6 @@ namespace Edu.Module.Course ...@@ -1685,24 +608,6 @@ namespace Edu.Module.Course
empModel.GiveOutState = 2; empModel.GiveOutState = 2;
} }
} }
/// <summary>
/// 验证用户离职
/// </summary>
/// <param name="userId"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public string GetUserLeaveOrderCommission(int userId, UserInfo userInfo)
{
int count = orderRepository.GetUserLeaveOrderCommission(userId, userInfo.Group_Id);
if (count <= 0)
{
return "";
}
else
{
return "该用户有" + count + "个订单提成需补交,无法设置离职";
}
}
/// <summary> /// <summary>
/// 获取未发放提成用户列表 + 提成金额 /// 获取未发放提成用户列表 + 提成金额
...@@ -1710,22 +615,22 @@ namespace Edu.Module.Course ...@@ -1710,22 +615,22 @@ namespace Edu.Module.Course
/// <param name="periodId"></param> /// <param name="periodId"></param>
/// <param name="userInfo"></param> /// <param name="userInfo"></param>
/// <returns></returns> /// <returns></returns>
public object GetSellCommissionSendEmployeeList(int periodId, UserInfo userInfo) public object GetSellAchievementsSendEmployeeList(int periodId, UserInfo userInfo)
{ {
var model = sell_Commission_PeriodsRepository.GetEntity(periodId); var model = sell_Achievements_PeriodsRepository.GetEntity(periodId);
if (model == null) { return "周期不存在"; } if (model == null) { return "周期不存在"; }
List<int> EmpIdList = new List<int>(); List<int> EmpIdList = new List<int>();
if (!string.IsNullOrEmpty(model.EmpIds)) if (!string.IsNullOrEmpty(model.EmpIds))
{ {
EmpIdList = JsonHelper.DeserializeObject<List<int>>("[" + model.EmpIds + "]"); EmpIdList = JsonHelper.DeserializeObject<List<int>>("[" + model.EmpIds + "]");
} }
var list = GetSellCommissionUserList(new RB_Sell_Commission_Details_ViewModel() { Group_Id = userInfo.Group_Id, PeriodId = periodId }); var list = GetSellAchievementsUserList(new RB_Sell_Achievements_Details_ViewModel() { Group_Id = userInfo.Group_Id, PeriodId = periodId });
return ApiResult.Success("", list.Select(x => new return ApiResult.Success("", list.Select(x => new
{ {
x.UserId, x.UserId,
x.UserName, x.UserName,
x.StudentCount, x.StudentCount,
CurrentPeriodMoney = x.CurrentPeriodMoney + x.CurrentExtraMoney, x.CurrentPeriodMoney,
IsGiveOut = EmpIdList.Contains(x.UserId) ? 1 : 2 IsGiveOut = EmpIdList.Contains(x.UserId) ? 1 : 2
})); }));
} }
...@@ -1737,9 +642,9 @@ namespace Edu.Module.Course ...@@ -1737,9 +642,9 @@ namespace Edu.Module.Course
/// <param name="empIds"></param> /// <param name="empIds"></param>
/// <param name="userInfo"></param> /// <param name="userInfo"></param>
/// <returns></returns> /// <returns></returns>
public string SetSellCommissionSendEmployee(int periodId, string empIds, UserInfo userInfo) public string SetSellAchievementsSendEmployee(int periodId, string empIds, UserInfo userInfo)
{ {
var model = sell_Commission_PeriodsRepository.GetEntity(periodId); var model = sell_Achievements_PeriodsRepository.GetEntity(periodId);
if (model == null) { return "周期不存在"; } if (model == null) { return "周期不存在"; }
if (model.Group_Id != userInfo.Group_Id) { return "集团不正确"; } if (model.Group_Id != userInfo.Group_Id) { return "集团不正确"; }
List<int> EmpIdList = new List<int>(); List<int> EmpIdList = new List<int>();
...@@ -1758,22 +663,22 @@ namespace Edu.Module.Course ...@@ -1758,22 +663,22 @@ namespace Edu.Module.Course
EmpIdList.AddRange(NewIdList); EmpIdList.AddRange(NewIdList);
string empids2 = string.Join(",", EmpIdList); string empids2 = string.Join(",", EmpIdList);
Dictionary<string, object> keyValues = new Dictionary<string, object>() { Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Sell_Commission_Periods_ViewModel.EmpIds),empids2} { nameof(RB_Sell_Achievements_Periods_ViewModel.EmpIds),empids2}
}; };
List<WhereHelper> wheres = new List<WhereHelper>() { List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){ new WhereHelper(){
FiledName= nameof(RB_Sell_Commission_Periods_ViewModel.Id), FiledName= nameof(RB_Sell_Achievements_Periods_ViewModel.Id),
FiledValue=periodId, FiledValue=periodId,
OperatorEnum=OperatorEnum.Equal OperatorEnum=OperatorEnum.Equal
} }
}; };
bool flag = sell_Commission_PeriodsRepository.Update(keyValues, wheres); bool flag = sell_Achievements_PeriodsRepository.Update(keyValues, wheres);
return flag ? "" : "出错了,请联系管理员"; return flag ? "" : "出错了,请联系管理员";
} }
#endregion #endregion
#region 业绩列表 #region 生成业绩
/// <summary> /// <summary>
/// 生成业绩提成 /// 生成业绩提成
...@@ -2422,5 +1327,17 @@ namespace Edu.Module.Course ...@@ -2422,5 +1327,17 @@ namespace Edu.Module.Course
} }
#endregion #endregion
#region 业绩效验
/// <summary>
/// 效验退款后 业绩提成是否达标
/// </summary>
/// <param name="orderId"></param>
public void ValidataAchievements(int orderId)
{
throw new NotImplementedException();
}
#endregion
} }
} }
...@@ -53,6 +53,14 @@ namespace Edu.Repository.Sell ...@@ -53,6 +53,14 @@ namespace Edu.Repository.Sell
{ {
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.OrderId)} in({demodel.OrderIds})"; where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.OrderId)} in({demodel.OrderIds})";
} }
if (demodel.UserType > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.UserType)} ={demodel.UserType}";
}
if (demodel.IsDept > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.IsDept)} ={demodel.IsDept}";
}
string sql = $@" select r.* from RB_Sell_Achievements_Details r where {where} order by r.Id asc"; string sql = $@" select r.* from RB_Sell_Achievements_Details r where {where} order by r.Id asc";
...@@ -96,6 +104,14 @@ namespace Edu.Repository.Sell ...@@ -96,6 +104,14 @@ namespace Edu.Repository.Sell
{ {
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.OrderId)} in({demodel.OrderIds})"; where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.OrderId)} in({demodel.OrderIds})";
} }
if (demodel.UserType > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.UserType)} ={demodel.UserType}";
}
if (demodel.IsDept > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.IsDept)} ={demodel.IsDept}";
}
string sql = $@" select r.*, string sql = $@" select r.*,
...@@ -144,7 +160,14 @@ from RB_Sell_Achievements_Details r where {where} order by r.Id asc"; ...@@ -144,7 +160,14 @@ from RB_Sell_Achievements_Details r where {where} order by r.Id asc";
{ {
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.OrderId)} ={demodel.OrderId}"; where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.OrderId)} ={demodel.OrderId}";
} }
if (demodel.UserType > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.UserType)} ={demodel.UserType}";
}
if (demodel.IsDept > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.IsDept)} ={demodel.IsDept}";
}
string sql = $@" select r.* from RB_Sell_Achievements_Details r where {where} order by r.Id desc"; string sql = $@" select r.* from RB_Sell_Achievements_Details r where {where} order by r.Id desc";
return GetPage<RB_Sell_Achievements_Details_ViewModel>(pageIndex, pageSize, out count, sql).ToList(); return GetPage<RB_Sell_Achievements_Details_ViewModel>(pageIndex, pageSize, out count, sql).ToList();
...@@ -183,6 +206,14 @@ from RB_Sell_Achievements_Details r where {where} order by r.Id asc"; ...@@ -183,6 +206,14 @@ from RB_Sell_Achievements_Details r where {where} order by r.Id asc";
{ {
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.OrderId)} ={demodel.OrderId}"; where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.OrderId)} ={demodel.OrderId}";
} }
if (demodel.UserType > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.UserType)} ={demodel.UserType}";
}
if (demodel.IsDept > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.IsDept)} ={demodel.IsDept}";
}
string sql = $@" select r.UserId,r.Depart_Id,r.School_Id,sum(r.StudentCount) as StudentCount,sum(r.CurrentPeriodMoney + r.DeductionMoney) as CurrentPeriodMoney string sql = $@" select r.UserId,r.Depart_Id,r.School_Id,sum(r.StudentCount) as StudentCount,sum(r.CurrentPeriodMoney + r.DeductionMoney) as CurrentPeriodMoney
...@@ -242,6 +273,14 @@ GROUP BY PeriodId "; ...@@ -242,6 +273,14 @@ GROUP BY PeriodId ";
{ {
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.OrderId)} ={demodel.OrderId}"; where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.OrderId)} ={demodel.OrderId}";
} }
if (demodel.UserType > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.UserType)} ={demodel.UserType}";
}
if (demodel.IsDept > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.IsDept)} ={demodel.IsDept}";
}
string sql = $@" select sum(r.CurrentPeriodMoney + r.DeductionMoney) from RB_Sell_Achievements_Details r where {where}"; string sql = $@" select sum(r.CurrentPeriodMoney + r.DeductionMoney) from RB_Sell_Achievements_Details r where {where}";
...@@ -249,8 +288,6 @@ GROUP BY PeriodId "; ...@@ -249,8 +288,6 @@ GROUP BY PeriodId ";
return obj == null ? 0 : Convert.ToDecimal(obj); return obj == null ? 0 : Convert.ToDecimal(obj);
} }
/// <summary> /// <summary>
/// 获取销售提成根据用户id /// 获取销售提成根据用户id
/// </summary> /// </summary>
...@@ -292,6 +329,14 @@ GROUP BY PeriodId "; ...@@ -292,6 +329,14 @@ GROUP BY PeriodId ";
{ {
where += $@" and DATE_FORMAT(STR_TO_DATE(CONCAT(p.Periods,'-01'),'%Y-%m-%d'),'%Y-%m-%d')>=DATE_FORMAT('{demodel.PeriodsTime}','%Y-%m-%d')"; where += $@" and DATE_FORMAT(STR_TO_DATE(CONCAT(p.Periods,'-01'),'%Y-%m-%d'),'%Y-%m-%d')>=DATE_FORMAT('{demodel.PeriodsTime}','%Y-%m-%d')";
} }
if (demodel.UserType > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.UserType)} ={demodel.UserType}";
}
if (demodel.IsDept > 0)
{
where += $@" and r.{nameof(RB_Sell_Achievements_Details_ViewModel.IsDept)} ={demodel.IsDept}";
}
string sql = $@" SELECT string sql = $@" SELECT
r.*, p.Periods AS PeriodsTime r.*, p.Periods AS PeriodsTime
......
...@@ -22,10 +22,6 @@ namespace Edu.WebApi.Controllers.Course ...@@ -22,10 +22,6 @@ namespace Edu.WebApi.Controllers.Course
[EnableCors("AllowCors")] [EnableCors("AllowCors")]
public class SellAchievementsController : BaseController public class SellAchievementsController : BaseController
{ {
/// <summary>
/// 教务奖励处理类对象
/// </summary>
private readonly SellCommissionModule sellCommissionModule = new SellCommissionModule();
/// <summary> /// <summary>
/// 市场顾问 /// 市场顾问
/// </summary> /// </summary>
...@@ -176,14 +172,14 @@ namespace Edu.WebApi.Controllers.Course ...@@ -176,14 +172,14 @@ namespace Edu.WebApi.Controllers.Course
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult GetSellCommissionPeriodsPageList() public ApiResult GetSellAchievementsPeriodsPageList()
{ {
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
var pageModel = JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString()); var pageModel = JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var dmodel = JsonHelper.DeserializeObject<RB_Sell_Commission_Periods_ViewModel>(RequestParm.Msg.ToString()); var dmodel = JsonHelper.DeserializeObject<RB_Sell_Achievements_Periods_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id; dmodel.Group_Id = userInfo.Group_Id;
var list = sellCommissionModule.GetSellCommissionPeriodsPageList(pageModel.PageIndex, pageModel.PageSize, out long count, dmodel); var list = sellAchievementsModule.GetSellAchievementsPeriodsPageList(pageModel.PageIndex, pageModel.PageSize, out long count, dmodel);
pageModel.Count = Convert.ToInt32(count); pageModel.Count = Convert.ToInt32(count);
pageModel.PageData = list.Select(x => new pageModel.PageData = list.Select(x => new
{ {
...@@ -206,13 +202,12 @@ namespace Edu.WebApi.Controllers.Course ...@@ -206,13 +202,12 @@ namespace Edu.WebApi.Controllers.Course
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult GetSellCommissionPeriodsList() { public ApiResult GetSellAchievementsPeriodsList() {
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
var dmodel = JsonHelper.DeserializeObject<RB_Sell_Commission_Periods_ViewModel>(RequestParm.Msg.ToString()); var dmodel = JsonHelper.DeserializeObject<RB_Sell_Achievements_Periods_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id; dmodel.Group_Id = userInfo.Group_Id;
var list = sellCommissionModule.GetSellCommissionPeriodsList(dmodel); var list = sellAchievementsModule.GetSellAchievementsPeriodsList(dmodel);
return ApiResult.Success("", list.Select(x => new return ApiResult.Success("", list.Select(x => new
{ {
x.Id, x.Id,
...@@ -226,15 +221,15 @@ namespace Edu.WebApi.Controllers.Course ...@@ -226,15 +221,15 @@ namespace Edu.WebApi.Controllers.Course
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult GetSellCommissionUserList() { public ApiResult GetSellAchievementsUserList() {
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
var dmodel = JsonHelper.DeserializeObject<RB_Sell_Commission_Details_ViewModel>(RequestParm.Msg.ToString()); var dmodel = JsonHelper.DeserializeObject<RB_Sell_Achievements_Details_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id; dmodel.Group_Id = userInfo.Group_Id;
if (dmodel.PeriodId <= 0) { if (dmodel.PeriodId <= 0) {
return ApiResult.ParamIsNull("请传递期数id"); return ApiResult.ParamIsNull("请传递期数id");
} }
var list = sellCommissionModule.GetSellCommissionUserList(dmodel); var list = sellAchievementsModule.GetSellAchievementsUserList(dmodel);
return ApiResult.Success("", list.Select(x => new return ApiResult.Success("", list.Select(x => new
{ {
x.School_Id, x.School_Id,
...@@ -244,9 +239,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -244,9 +239,7 @@ namespace Edu.WebApi.Controllers.Course
x.UserId, x.UserId,
x.UserName, x.UserName,
x.StudentCount, x.StudentCount,
x.CurrentPeriodMoney, x.CurrentPeriodMoney
x.CurrentExtraMoney,
CommissionMoney = x.CurrentPeriodMoney + x.CurrentExtraMoney
})); }));
} }
...@@ -255,17 +248,17 @@ namespace Edu.WebApi.Controllers.Course ...@@ -255,17 +248,17 @@ namespace Edu.WebApi.Controllers.Course
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult GetSellCommissionUserDetailList() public ApiResult GetSellAchievementsUserDetailList()
{ {
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
var dmodel = JsonHelper.DeserializeObject<RB_Sell_Commission_Details_ViewModel>(RequestParm.Msg.ToString()); var dmodel = JsonHelper.DeserializeObject<RB_Sell_Achievements_Details_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id; dmodel.Group_Id = userInfo.Group_Id;
if (dmodel.PeriodId <= 0) if (dmodel.PeriodId <= 0)
{ {
return ApiResult.ParamIsNull("请传递期数id"); return ApiResult.ParamIsNull("请传递期数id");
} }
var list = sellCommissionModule.GetSellCommissionUserDetailList_V2(dmodel); var list = sellAchievementsModule.GetSellAchievementsUserDetailList_V2(dmodel);
return ApiResult.Success("", list.Select(x => new return ApiResult.Success("", list.Select(x => new
{ {
x.School_Id, x.School_Id,
...@@ -283,21 +276,18 @@ namespace Edu.WebApi.Controllers.Course ...@@ -283,21 +276,18 @@ namespace Edu.WebApi.Controllers.Course
x.IssueNum, x.IssueNum,
x.StudentCount, x.StudentCount,
x.Periods, x.Periods,
TotalCommissionMoney = x.CommissionMoney + x.OtherMoney + x.BackMoney, TotalCommissionMoney = x.CommissionMoney,
x.OtherMoney,
x.BackMoney,
x.GiveOutMoney, x.GiveOutMoney,
x.IsFirstCommission, x.IsFirstCommission,
x.TotalHours, x.TotalHours,
x.TotalLearn, x.TotalLearn,
x.CurrentHours, x.CurrentHours,
x.IsContinueClass,
x.Remark, x.Remark,
x.CurrentPeriodMoney, x.CurrentPeriodMoney,
x.CurrentExtraMoney,
x.DeductionMoney, x.DeductionMoney,
x.DeductionExtraMoney, YFMoney = x.CurrentPeriodMoney + x.DeductionMoney,
YFMoney = x.CurrentPeriodMoney + x.CurrentExtraMoney + x.DeductionMoney + x.DeductionExtraMoney x.UserType,
x.IsDept
})); }));
} }
...@@ -306,17 +296,17 @@ namespace Edu.WebApi.Controllers.Course ...@@ -306,17 +296,17 @@ namespace Edu.WebApi.Controllers.Course
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult GetSellCommissionForOrderList() public ApiResult GetSellAchievementsForOrderList()
{ {
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
var dmodel = JsonHelper.DeserializeObject<RB_Sell_Commission_Details_ViewModel>(RequestParm.Msg.ToString()); var dmodel = JsonHelper.DeserializeObject<RB_Sell_Achievements_Details_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id; dmodel.Group_Id = userInfo.Group_Id;
if (dmodel.OrderId <= 0) if (dmodel.OrderId <= 0)
{ {
return ApiResult.ParamIsNull("请传递订单id"); return ApiResult.ParamIsNull("请传递订单id");
} }
var list = sellCommissionModule.GetSellCommissionUserDetailList(dmodel); var list = sellAchievementsModule.GetSellAchievementsUserDetailList(dmodel);
return ApiResult.Success("", list.Select(x => new return ApiResult.Success("", list.Select(x => new
{ {
x.School_Id, x.School_Id,
...@@ -333,21 +323,18 @@ namespace Edu.WebApi.Controllers.Course ...@@ -333,21 +323,18 @@ namespace Edu.WebApi.Controllers.Course
x.OrderId, x.OrderId,
x.StudentCount, x.StudentCount,
x.Periods, x.Periods,
TotalCommissionMoney = x.CommissionMoney + x.OtherMoney + x.BackMoney, TotalCommissionMoney = x.CommissionMoney,
x.OtherMoney,
x.BackMoney,
x.GiveOutMoney, x.GiveOutMoney,
x.IsFirstCommission, x.IsFirstCommission,
x.TotalHours, x.TotalHours,
x.TotalLearn, x.TotalLearn,
x.CurrentHours, x.CurrentHours,
x.IsContinueClass,
x.Remark, x.Remark,
x.CurrentPeriodMoney, x.CurrentPeriodMoney,
x.CurrentExtraMoney,
x.DeductionMoney, x.DeductionMoney,
x.DeductionExtraMoney, YFMoney = x.CurrentPeriodMoney + x.DeductionMoney,
YFMoney = x.CurrentPeriodMoney + x.CurrentExtraMoney + x.DeductionMoney + x.DeductionExtraMoney x.UserType,
x.IsDept
})); }));
} }
...@@ -356,14 +343,14 @@ namespace Edu.WebApi.Controllers.Course ...@@ -356,14 +343,14 @@ namespace Edu.WebApi.Controllers.Course
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult GetSellCommissionStatistics() { public ApiResult GetSellAchievementsStatistics() {
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
var pageModel = JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString()); var pageModel = JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var dmodel = JsonHelper.DeserializeObject<RB_Sell_Commission_Details_ViewModel>(RequestParm.Msg.ToString()); var dmodel = JsonHelper.DeserializeObject<RB_Sell_Achievements_Details_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id; dmodel.Group_Id = userInfo.Group_Id;
var list = sellCommissionModule.GetSellCommissionStatisticsPageList(pageModel.PageIndex, pageModel.PageSize, out long count, dmodel); var list = sellAchievementsModule.GetSellAchievementsStatisticsPageList(pageModel.PageIndex, pageModel.PageSize, out long count, dmodel);
decimal TotalMoney = sellCommissionModule.GetSellCommissionStatistics(dmodel); decimal TotalMoney = sellAchievementsModule.GetSellAchievementsStatistics(dmodel);
pageModel.Count = Convert.ToInt32(count); pageModel.Count = Convert.ToInt32(count);
pageModel.PageData = new pageModel.PageData = new
{ {
...@@ -384,21 +371,18 @@ namespace Edu.WebApi.Controllers.Course ...@@ -384,21 +371,18 @@ namespace Edu.WebApi.Controllers.Course
x.OrderId, x.OrderId,
x.StudentCount, x.StudentCount,
x.Periods, x.Periods,
TotalCommissionMoney = x.CommissionMoney + x.OtherMoney + x.BackMoney, TotalCommissionMoney = x.CommissionMoney,
x.OtherMoney,
x.BackMoney,
x.GiveOutMoney, x.GiveOutMoney,
x.IsFirstCommission, x.IsFirstCommission,
x.TotalHours, x.TotalHours,
x.TotalLearn, x.TotalLearn,
x.CurrentHours, x.CurrentHours,
x.IsContinueClass,
x.Remark, x.Remark,
x.CurrentPeriodMoney, x.CurrentPeriodMoney,
x.CurrentExtraMoney,
x.DeductionMoney, x.DeductionMoney,
x.DeductionExtraMoney, YFMoney = x.CurrentPeriodMoney + x.DeductionMoney,
YFMoney = x.CurrentPeriodMoney + x.CurrentExtraMoney + x.DeductionMoney + x.DeductionExtraMoney x.UserType,
x.IsDept
}) })
}; };
return ApiResult.Success("", pageModel); return ApiResult.Success("", pageModel);
...@@ -410,35 +394,33 @@ namespace Edu.WebApi.Controllers.Course ...@@ -410,35 +394,33 @@ namespace Edu.WebApi.Controllers.Course
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Obsolete] [Obsolete]
public FileContentResult GetSellCommissionStatisticsToExcel() { public FileContentResult GetSellAchievementsStatisticsToExcel() {
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
var dmodel = JsonHelper.DeserializeObject<RB_Sell_Commission_Details_ViewModel>(RequestParm.Msg.ToString()); var dmodel = JsonHelper.DeserializeObject<RB_Sell_Achievements_Details_ViewModel>(RequestParm.Msg.ToString());
dmodel.Group_Id = userInfo.Group_Id; dmodel.Group_Id = userInfo.Group_Id;
string ExcelName = "销售提成" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls"; string ExcelName = "业绩提成" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
List<ExcelDataSource> slist = new List<ExcelDataSource>(); List<ExcelDataSource> slist = new List<ExcelDataSource>();
ExcelDataSource header = new ExcelDataSource() ExcelDataSource header = new ExcelDataSource()
{ {
ExcelRows = new List<ExcelColumn>(30) { ExcelRows = new List<ExcelColumn>(30) {
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 = 25, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER }, new ExcelColumn(value: "类型") { CellWidth = 25, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "人员") { CellWidth = 25, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "业绩方式") { CellWidth = 25, 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 },
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 }
...@@ -448,8 +430,8 @@ namespace Edu.WebApi.Controllers.Course ...@@ -448,8 +430,8 @@ namespace Edu.WebApi.Controllers.Course
try try
{ {
var list = sellCommissionModule.GetSellCommissionStatisticsPageList(1, 1000000, out long count, dmodel); var list = sellAchievementsModule.GetSellAchievementsStatisticsPageList(1, 1000000, out long count, dmodel);
decimal TotalMoney = sellCommissionModule.GetSellCommissionStatistics(dmodel); decimal TotalMoney = sellAchievementsModule.GetSellAchievementsStatistics(dmodel);
#region 组装数据 #region 组装数据
foreach (var item in list) foreach (var item in list)
{ {
...@@ -458,25 +440,23 @@ namespace Edu.WebApi.Controllers.Course ...@@ -458,25 +440,23 @@ namespace Edu.WebApi.Controllers.Course
ExcelRows = new List<ExcelColumn>(30) { ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value: item.SchoolName){ }, new ExcelColumn(value: item.SchoolName){ },
new ExcelColumn(value: item.DeptName){ }, new ExcelColumn(value: item.DeptName){ },
new ExcelColumn(value: item.UserType == 1?"市场":item.UserType ==2?"顾问":"教师"){ },
new ExcelColumn(value: item.UserName){ }, new ExcelColumn(value: item.UserName){ },
new ExcelColumn(value: item.IsDept==1?"部门":"个人"){ },
new ExcelColumn(value: item.ClassNo){ }, new ExcelColumn(value: item.ClassNo){ },
new ExcelColumn(value: item.ClassName + (item.IsContinueClass == 1 ? " 续班" : "")){ }, new ExcelColumn(value: item.ClassName){ },
new ExcelColumn(value: item.ClassTypeName){ }, new ExcelColumn(value: item.ClassTypeName){ },
new ExcelColumn(value: item.StudentCount.ToString()){ }, new ExcelColumn(value: item.StudentCount.ToString()){ },
new ExcelColumn(value: item.OrderId.ToString()){ }, new ExcelColumn(value: item.OrderId.ToString()){ },
new ExcelColumn(value: (item.CommissionMoney + item.OtherMoney + item.BackMoney).ToString("#0.00")){ }, new ExcelColumn(value: (item.CommissionMoney).ToString("#0.00")){ },
new ExcelColumn(value: (item.OtherMoney).ToString("#0.00")){ },
new ExcelColumn(value: (item.BackMoney).ToString("#0.00")){ },
new ExcelColumn(value: (item.GiveOutMoney).ToString("#0.00")){ }, new ExcelColumn(value: (item.GiveOutMoney).ToString("#0.00")){ },
new ExcelColumn(value: item.IsFirstCommission == 1 ?"是":"否"){ }, new ExcelColumn(value: item.IsFirstCommission == 1 ?"是":"否"){ },
new ExcelColumn(value: item.TotalHours.ToString()){ }, new ExcelColumn(value: item.TotalHours.ToString()){ },
new ExcelColumn(value: item.TotalLearn.ToString()){ }, new ExcelColumn(value: item.TotalLearn.ToString()){ },
new ExcelColumn(value: item.CurrentHours == -1 ?"-": item.CurrentHours.ToString()){ }, new ExcelColumn(value: item.CurrentHours == -1 ?"-": item.CurrentHours.ToString()){ },
new ExcelColumn(value: (item.CurrentPeriodMoney).ToString("#0.00")){ }, new ExcelColumn(value: (item.CurrentPeriodMoney).ToString("#0.00")){ },
new ExcelColumn(value: (item.CurrentExtraMoney).ToString("#0.00")){ },
new ExcelColumn(value: (item.DeductionMoney).ToString("#0.00")){ }, new ExcelColumn(value: (item.DeductionMoney).ToString("#0.00")){ },
new ExcelColumn(value: (item.DeductionExtraMoney).ToString("#0.00")){ }, new ExcelColumn(value: (item.CurrentPeriodMoney + item.DeductionMoney).ToString("#0.00")){ },
new ExcelColumn(value: (item.CurrentPeriodMoney + item.CurrentExtraMoney + item.DeductionMoney + item.DeductionExtraMoney).ToString("#0.00")){ },
new ExcelColumn(value: item.Periods){ }, new ExcelColumn(value: item.Periods){ },
new ExcelColumn(value: item.Remark){ }, new ExcelColumn(value: item.Remark){ },
}, },
...@@ -507,8 +487,6 @@ namespace Edu.WebApi.Controllers.Course ...@@ -507,8 +487,6 @@ namespace Edu.WebApi.Controllers.Course
new ExcelColumn(value: ""){ }, new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ }, new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ }, new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: TotalMoney.ToString("#0.00")){ }, new ExcelColumn(value: TotalMoney.ToString("#0.00")){ },
new ExcelColumn(value: ""){ }, new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ }, new ExcelColumn(value: ""){ },
...@@ -561,37 +539,12 @@ namespace Edu.WebApi.Controllers.Course ...@@ -561,37 +539,12 @@ namespace Edu.WebApi.Controllers.Course
} }
} }
/// <summary>
/// 验证用户离职
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetUserLeaveOrderCommission() {
var userInfo = base.UserInfo;
JObject parms = JObject.Parse(RequestParm.Msg.ToString());
int UserId = parms.GetInt("UserId", 0);
if (UserId <= 0)
{
return ApiResult.ParamIsNull();
}
string msg = sellCommissionModule.GetUserLeaveOrderCommission(UserId, userInfo);
if (msg == "")
{
return ApiResult.Success("暂无需补交订单");
}
else
{
return ApiResult.Failed(msg);
}
}
/// <summary> /// <summary>
/// 获取提成可发放人员列表 /// 获取提成可发放人员列表
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult GetSellCommissionSendEmployeeList() { public ApiResult GetSellAchievementsSendEmployeeList() {
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
JObject parms = JObject.Parse(RequestParm.Msg.ToString()); JObject parms = JObject.Parse(RequestParm.Msg.ToString());
int PeriodId = parms.GetInt("PeriodId", 0);//期数id int PeriodId = parms.GetInt("PeriodId", 0);//期数id
...@@ -600,7 +553,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -600,7 +553,7 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.ParamIsNull(); return ApiResult.ParamIsNull();
} }
var list = sellCommissionModule.GetSellCommissionSendEmployeeList(PeriodId, userInfo); var list = sellAchievementsModule.GetSellAchievementsSendEmployeeList(PeriodId, userInfo);
return ApiResult.Success("", list); return ApiResult.Success("", list);
} }
...@@ -609,7 +562,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -609,7 +562,7 @@ namespace Edu.WebApi.Controllers.Course
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult SetSellCommissionSendEmployee() { public ApiResult SetSellAchievementsSendEmployee() {
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
JObject parms = JObject.Parse(RequestParm.Msg.ToString()); JObject parms = JObject.Parse(RequestParm.Msg.ToString());
int PeriodId = parms.GetInt("PeriodId", 0);//期数id int PeriodId = parms.GetInt("PeriodId", 0);//期数id
...@@ -623,7 +576,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -623,7 +576,7 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.ParamIsNull("请传递用户id"); return ApiResult.ParamIsNull("请传递用户id");
} }
string msg = sellCommissionModule.SetSellCommissionSendEmployee(PeriodId, EmpIds, userInfo); string msg = sellAchievementsModule.SetSellAchievementsSendEmployee(PeriodId, EmpIds, userInfo);
if (msg == "") if (msg == "")
{ {
return ApiResult.Success(""); return ApiResult.Success("");
......
...@@ -29,6 +29,10 @@ namespace Edu.WebApi.Controllers.Third ...@@ -29,6 +29,10 @@ namespace Edu.WebApi.Controllers.Third
/// 订单处理类 /// 订单处理类
/// </summary> /// </summary>
private readonly OrderModule orderModule = new OrderModule(); private readonly OrderModule orderModule = new OrderModule();
/// <summary>
/// 业绩提成
/// </summary>
private readonly SellAchievementsModule sellAchievementsModule = new SellAchievementsModule();
/// <summary> /// <summary>
/// 根部部门层级获取部门主管 /// 根部部门层级获取部门主管
...@@ -155,6 +159,10 @@ namespace Edu.WebApi.Controllers.Third ...@@ -155,6 +159,10 @@ namespace Edu.WebApi.Controllers.Third
bool flag = orderModule.UpdateEduOrderIncome(OrderId, Income, PlatformTax, Refund, empModel); bool flag = orderModule.UpdateEduOrderIncome(OrderId, Income, PlatformTax, Refund, empModel);
if (flag) if (flag)
{ {
if (Refund > 0) {
//是退款 检验订单是否会影响 业绩提成
System.Threading.Tasks.Task.Run(() => sellAchievementsModule.ValidataAchievements(OrderId));
}
return ApiResult.Success(); return ApiResult.Success();
} }
else else
......
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