Commit 8cf5020d authored by 吴春's avatar 吴春

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

parents 466ab502 52de307a
...@@ -142,5 +142,10 @@ namespace Edu.Model.Entity.Sell ...@@ -142,5 +142,10 @@ namespace Edu.Model.Entity.Sell
/// </summary> /// </summary>
public decimal FirstRate { get; set; } public decimal FirstRate { get; set; }
/// <summary>
/// 人头奖励
/// </summary>
public decimal PeopleNumMoney { get; set; }
} }
} }
...@@ -86,5 +86,11 @@ namespace Edu.Model.Entity.Sell ...@@ -86,5 +86,11 @@ namespace Edu.Model.Entity.Sell
/// 订单业绩 /// 订单业绩
/// </summary> /// </summary>
public decimal OrderSaleMoney { get; set; } public decimal OrderSaleMoney { get; set; }
/// <summary>
/// 人头奖励
/// </summary>
public decimal PeopleNumMoney { get; set; }
} }
} }
...@@ -39,5 +39,10 @@ namespace Edu.Model.ViewModel.Sell ...@@ -39,5 +39,10 @@ namespace Edu.Model.ViewModel.Sell
/// 当前订单金额 /// 当前订单金额
/// </summary> /// </summary>
public decimal OrderMoney { get; set; } public decimal OrderMoney { get; set; }
/// <summary>
/// 订单退款金额
/// </summary>
public decimal Refund { get; set; }
} }
} }
\ No newline at end of file
...@@ -508,6 +508,9 @@ namespace Edu.Module.Course ...@@ -508,6 +508,9 @@ namespace Edu.Module.Course
string classTypeIds = string.Join(",", list.Select(x => x.ClassType).Distinct()); 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 }); var ctlist = class_TypeRepository.GetClassTypeListRepository(new RB_Class_Type_ViewModel() { Q_CTypeIds = classTypeIds, Group_Id = dmodel.Group_Id });
var empList = sell_Achievements_EmpRepository.GetList(new RB_Sell_Achievements_Emp_ViewModel() { Group_Id = dmodel.Group_Id, OrderIds = string.Join(",", list.Select(x => x.OrderId).Distinct()), });
foreach (var item in list) foreach (var item in list)
{ {
var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault(); var umodel = ulist.Where(x => x.Id == item.UserId).FirstOrDefault();
...@@ -524,6 +527,18 @@ namespace Edu.Module.Course ...@@ -524,6 +527,18 @@ namespace Edu.Module.Course
{ {
item.ClassTypeName = ctlist.Where(x => x.CTypeId == item.ClassType).FirstOrDefault()?.CTypeName ?? ""; item.ClassTypeName = ctlist.Where(x => x.CTypeId == item.ClassType).FirstOrDefault()?.CTypeName ?? "";
} }
//EmpId = userId, Type = userType, IsDept
var empModel = empList.Where(x => x.OrderId == item.OrderId && x.EmpId == item.UserId && x.Type == item.UserType && x.IsDept == item.IsDept).ToList();
string rmsg = ""; int Num = 1;
foreach (var eitem in empModel.OrderBy(x => x.Id))
{
if (eitem.Remark.Contains("退款回扣"))
{
rmsg += " >" + Num + "、" + "业绩比例:" + eitem.Rate + "%;业绩描述:" + eitem.Remark + ";";
Num++;
}
}
if (!string.IsNullOrEmpty(rmsg)) { item.Remark += rmsg; }
} }
} }
return list; return list;
...@@ -678,7 +693,7 @@ namespace Edu.Module.Course ...@@ -678,7 +693,7 @@ namespace Edu.Module.Course
x.UserId, x.UserId,
x.UserName, x.UserName,
x.StudentCount, x.StudentCount,
x.CurrentPeriodMoney, CurrentPeriodMoney = x.CurrentPeriodMoney + x.PeopleNumMoney,
IsGiveOut = EmpIdList.Contains(x.UserId) ? 1 : 2 IsGiveOut = EmpIdList.Contains(x.UserId) ? 1 : 2
}); });
} }
...@@ -744,7 +759,6 @@ namespace Edu.Module.Course ...@@ -744,7 +759,6 @@ namespace Edu.Module.Course
} }
#region 小语种提成规则 #region 小语种提成规则
var languageRuleList = language_RuleRepository.GetLanguageRuleListRepository(new RB_Language_Rule_Extend { Group_Id = userInfo.Group_Id }); var languageRuleList = language_RuleRepository.GetLanguageRuleListRepository(new RB_Language_Rule_Extend { Group_Id = userInfo.Group_Id });
#endregion #endregion
//根据规则 分成 市场 顾问 老师 //根据规则 分成 市场 顾问 老师
...@@ -753,18 +767,25 @@ namespace Edu.Module.Course ...@@ -753,18 +767,25 @@ namespace Edu.Module.Course
string SchoolIds = string.Join(",", rulelist.Select(x => x.SchoolIds)); string SchoolIds = string.Join(",", rulelist.Select(x => x.SchoolIds));
//查询 班级订单 1.尾款收齐 //查询 班级订单 1.尾款收齐
string SDate = Config.NewAchievementsEnable; //string SDate = "2024-08-01";
string SDate = "2023-11-01";
string EDate = Convert.ToDateTime(month + "-01").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd"); string EDate = Convert.ToDateTime(month + "-01").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");
var orderList = orderRepository.GetAllAchievementsSendOrderList(userInfo.Group_Id, SDate, EDate, 1, "", SchoolIds, languageRuleList, 1);//查询所有的 var orderList = orderRepository.GetAllAchievementsSendOrderList(userInfo.Group_Id, SDate, EDate, 1, "", SchoolIds, languageRuleList, 1);//查询所有的
List<RB_Sell_Achievements_Emp_ViewModel> AchEmpList = new List<RB_Sell_Achievements_Emp_ViewModel>();//需要新增当月的 List<RB_Sell_Achievements_Emp_ViewModel> AchEmpList = new List<RB_Sell_Achievements_Emp_ViewModel>();//需要新增当月的
//查询当月有效到访人数(邀约到访30分钟以上)
var stuList = studentRepository.GetValidVisitNum(Convert.ToDateTime(month + "-01").ToString("yyyy-MM-dd"), EDate, userInfo.Group_Id);
#region 退费规则 #region 退费规则
//查询历史所有 退费的单子 汇总金额计入其当月的业绩计算 并回扣所有订单的提成(是 2023-10月这一期开始 回扣提成 ) PeriodId =64 开始扣提成 //查询历史所有 退费的单子 汇总金额计入其当月的业绩计算 并回扣所有订单的提成(是 2023-10月这一期开始 回扣提成 ) PeriodId =64 开始扣提成
//首先查询 所有退费的单子 //首先查询 所有退费的单子
var ROrderList = sell_Achievements_EmpRepository.GetAllRefundWaitPendingList(userInfo.Group_Id); var ROrderList = sell_Achievements_EmpRepository.GetAllRefundWaitPendingList(userInfo.Group_Id);
ROrderList = ROrderList.Where(x => x.OrderId == 1501).ToList();
if (ROrderList.Any()) {
string orderIds = string.Join(",", ROrderList.Select(x => x.OrderId));
var bdList = order_ReturnComissionRepository.GetOrderReturnComissionListRepositpry(new RB_Order_ReturnComission_ViewModel() { GroupId = userInfo.Group_Id, QOrderIds = orderIds });
foreach (var item in ROrderList) {
decimal bdCommission = bdList.Where(x => x.OrderId == item.OrderId).Sum(x => x.CommissionMoeny);
item.OrderMoney -= bdCommission;
}
}
#endregion #endregion
if (orderList.Any()) if (orderList.Any())
...@@ -788,36 +809,11 @@ namespace Edu.Module.Course ...@@ -788,36 +809,11 @@ namespace Edu.Module.Course
string orderIds = string.Join(",", orderList.Select(x => x.OrderId)); string orderIds = string.Join(",", orderList.Select(x => x.OrderId));
var bdList = order_ReturnComissionRepository.GetOrderReturnComissionListRepositpry(new RB_Order_ReturnComission_ViewModel() { GroupId = userInfo.Group_Id, QOrderIds = orderIds }); var bdList = order_ReturnComissionRepository.GetOrderReturnComissionListRepositpry(new RB_Order_ReturnComission_ViewModel() { GroupId = userInfo.Group_Id, QOrderIds = orderIds });
//获取订单的学生 是否邀约到访30分钟以上
//var surList = orderRepository.GetStuSureConsultTimeForOrder(orderIds);
#region 验证订单是否已生成返佣 (必须有返佣数据 才能参与业绩提成) #region 验证订单是否已生成返佣 (必须有返佣数据 才能参与业绩提成)
var cbdOrderlist = bdList.Where(x => x.Status >= 0).Select(x => x.OrderId).ToList(); var cbdOrderlist = bdList.Where(x => x.Status >= 0).Select(x => x.OrderId).ToList();
orderList = orderList.Where(x => cbdOrderlist.Contains(x.OrderId)).ToList();//都是已返佣的 orderList = orderList.Where(x => cbdOrderlist.Contains(x.OrderId)).ToList();//都是已返佣的
#endregion #endregion
#region 在对佘老师订单进行处理
//佘老师订单 无论顾问 还是 市场 统一按市场处理
if (orderList.Where(x => x.CourseConsultantId == 2855).Any())
{
List<RB_Order_ViewModel> InserList = new List<RB_Order_ViewModel>();
foreach (var item in orderList.Where(x => x.CourseConsultantId == 2855))
{
item.CourseConsultantId = 0;//课程顾问归0
var ccModel = JsonHelper.Serialize(item);//引用类型 转换一下
var cc2Model = JsonHelper.DeserializeObject<RB_Order_ViewModel>(ccModel);
cc2Model.EnterID = 2855;//佘老师转为市场
cc2Model.HelpEnterId = 0;//排除老师 避免老师重复发放
InserList.Add(cc2Model);
}
if (InserList.Any())
{
orderList.AddRange(InserList);
}
}
#endregion
#region 老师订单5.10日需求 #region 老师订单5.10日需求
//ld2023-03-21 转介绍学生的老师 有2%提成 留学订单200 //ld2023-03-21 转介绍学生的老师 有2%提成 留学订单200
...@@ -826,23 +822,49 @@ namespace Edu.Module.Course ...@@ -826,23 +822,49 @@ namespace Edu.Module.Course
{ {
//再次查询学生 //再次查询学生
string OrderIds = string.Join(",", orderList.Where(x => x.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.Normal).Select(x => x.OrderId)); string OrderIds = string.Join(",", orderList.Where(x => x.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.Normal).Select(x => x.OrderId));
var saList = student_AssistRepository.GetAssistTeacherForOrder(OrderIds);//转介绍 2%提成 //var saList = student_AssistRepository.GetAssistTeacherForOrder(OrderIds);//转介绍 2%提成 ld 2024-08-27 暂时排除 转介绍
var stList = student_AssistRepository.GetTrialTeacher(OrderIds, userInfo.Group_Id);//试听 1%提成 var stList = student_AssistRepository.GetTrialTeacher(OrderIds, userInfo.Group_Id);//试听 1%提成
var stList2 = student_AssistRepository.GetAssistTeacherForOrder(OrderIds, false);//设置的班主任
//重新关联一下订单的 转介绍老师 //重新关联一下订单的 转介绍老师
foreach (var item in orderList.Where(x => x.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.Normal)) foreach (var item in orderList.Where(x => x.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.Normal))
{ {
//if (item.HelpEnterId > 0) { continue; } //if (item.HelpEnterId > 0) { continue; }
item.HelpEnterId = saList.Where(x => x.OrderId == item.OrderId).FirstOrDefault()?.AssistId ?? 0; //item.HelpEnterId = saList.Where(x => x.OrderId == item.OrderId).FirstOrDefault()?.AssistId ?? 0;
item.ClassScrollType = 1; //item.ClassScrollType = 1;
//再次查询此订单学员是否走试听 试听拿 1%提成 如果是转介绍 就不拿试听提成 2023-08-21 LD //再次查询此订单学员是否走试听 试听拿 1%提成 如果是转介绍 就不拿试听提成 2023-08-21 LD
if (item.HelpEnterId <= 0) //if (item.HelpEnterId <= 0)
{ //{
// item.HelpEnterId = stList.Where(x => x.OrderId == item.OrderId).FirstOrDefault()?.AssistId ?? 0;
// item.ClassScrollType = 2;
//}
item.HelpEnterId = stList.Where(x => x.OrderId == item.OrderId).FirstOrDefault()?.AssistId ?? 0; item.HelpEnterId = stList.Where(x => x.OrderId == item.OrderId).FirstOrDefault()?.AssistId ?? 0;
item.ClassScrollType = 2; item.ClassScrollType = 2;//试听
//计算一下是否有返佣 有返佣 老师拿1%提成, 无市场提成 ld 08-28 徐总当面确认
decimal bdCommission = bdList.Where(x => x.OrderId == item.OrderId).Sum(x => x.CommissionMoeny);
if (bdCommission > 0) {
item.ClassScrollType = 3;//各种介绍来源
if (item.HelpEnterId <= 0) {
item.HelpEnterId = stList2.Where(x => x.OrderId == item.OrderId).FirstOrDefault()?.AssistId ?? 0;
}
} }
} }
} }
if (orderList.Where(x => x.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.RenewOrder).Any()) {
//续费 全部班主任拿提成, 重新更新一下 班主任
string OrderIds = string.Join(",", orderList.Where(x => x.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.RenewOrder).Select(x => x.OrderId));
var stList = student_AssistRepository.GetAssistTeacherForOrder(OrderIds, false);
//重新关联一下订单的 转介绍老师
foreach (var item in orderList.Where(x => x.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.RenewOrder))
{
item.HelpEnterId = stList.Where(x => x.OrderId == item.OrderId).FirstOrDefault()?.AssistId ?? 0;
}
}
if (orderList.Where(x => x.HelpEnterId > 0).Any()) if (orderList.Where(x => x.HelpEnterId > 0).Any())
{ {
...@@ -857,31 +879,33 @@ namespace Edu.Module.Course ...@@ -857,31 +879,33 @@ namespace Edu.Module.Course
string Remark = ""; string Remark = "";
//当前订单的返佣 //当前订单的返佣
decimal bdCommission = bdList.Where(x => x.OrderId == qitem.OrderId).Sum(x => x.CommissionMoeny); decimal bdCommission = bdList.Where(x => x.OrderId == qitem.OrderId).Sum(x => x.CommissionMoeny);
decimal orderYJ = qitem.PreferPrice - qitem.DiscountMoney - qitem.PlatformTax - qitem.CoursewareFee - qitem.TextbookFee - bdCommission;
if (qitem.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.RenewOrder) if (qitem.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.RenewOrder)
{ {
//续费订单 //续费订单
TRate = Convert.ToDecimal(TeacherRuleList.Where(x => x.SNO == 4).FirstOrDefault()?.Content ?? "0"); TRate = Convert.ToDecimal(TeacherRuleList.Where(x => x.SNO == 4).FirstOrDefault()?.Content ?? "0");
Remark = "教师续费订单提成:订单b2b返佣:" + bdCommission + ";订单业绩:" + (qitem.PreferPrice - qitem.DiscountMoney); Remark = "教师续费订单提成:订单b2b返佣:" + bdCommission + ";订单业绩:" + orderYJ;
} }
else if (qitem.ClassScrollType == 1) else if (qitem.ClassScrollType == 3)
{ {
//转介绍 //转介绍
TRate = Convert.ToDecimal(TeacherRuleList.Where(x => x.SNO == 1).FirstOrDefault()?.Content ?? "0"); TRate = Convert.ToDecimal(TeacherRuleList.Where(x => x.SNO == 1).FirstOrDefault()?.Content ?? "0");
Remark = "教师转介绍订单提成:订单b2b返佣:" + bdCommission + ";订单业绩:" + (qitem.PreferPrice - qitem.DiscountMoney); Remark = "介绍来源订单提成:订单b2b返佣:" + bdCommission + ";订单业绩:" + orderYJ;
} }
else if (qitem.ClassScrollType == 2) else if (qitem.ClassScrollType == 2)
{ {
//新订单 //新订单
TRate = Convert.ToDecimal(TeacherRuleList.Where(x => x.SNO == 5).FirstOrDefault()?.Content ?? "0"); TRate = Convert.ToDecimal(TeacherRuleList.Where(x => x.SNO == 5).FirstOrDefault()?.Content ?? "0");
Remark = "教师试听订单提成:订单b2b返佣:" + bdCommission + ";订单业绩:" + (qitem.PreferPrice - qitem.DiscountMoney); Remark = "教师试听订单提成:订单b2b返佣:" + bdCommission + ";订单业绩:" + orderYJ;
} }
else { return qitem.OrderId + "未匹配上老师"; }
if (qitem.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.Normal && qitem.OrderType == Common.Enum.Sale.OrderTypeEnum.StudyabroadOrder) if (qitem.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.Normal && qitem.OrderType == Common.Enum.Sale.OrderTypeEnum.StudyabroadOrder)
{ {
//留学订单 //留学订单
decimal lxMoney = Convert.ToDecimal(TeacherRuleList.Where(x => x.SNO == 3).FirstOrDefault()?.Content ?? "0"); decimal lxMoney = Convert.ToDecimal(TeacherRuleList.Where(x => x.SNO == 3).FirstOrDefault()?.Content ?? "0");
Remark = "教师留学订单奖励:订单b2b返佣:" + bdCommission + ";订单业绩:" + (qitem.PreferPrice - qitem.DiscountMoney) + ";留学奖励" + lxMoney; Remark = "教师留学订单奖励:订单b2b返佣:" + bdCommission + ";订单业绩:" + (qitem.PreferPrice - qitem.DiscountMoney) + ";留学奖励" + lxMoney;
} }
decimal PushMoney = Math.Round((qitem.PreferPrice - qitem.DiscountMoney) * TRate / 100, 2, MidpointRounding.AwayFromZero); decimal PushMoney = Math.Round(orderYJ * TRate / 100, 2, MidpointRounding.AwayFromZero);
AchEmpList.Add(new RB_Sell_Achievements_Emp_ViewModel() AchEmpList.Add(new RB_Sell_Achievements_Emp_ViewModel()
{ {
EmpId = qitem.HelpEnterId, EmpId = qitem.HelpEnterId,
...@@ -896,7 +920,7 @@ namespace Edu.Module.Course ...@@ -896,7 +920,7 @@ namespace Edu.Module.Course
PushMoney = PushMoney, PushMoney = PushMoney,
RuleId = 0, RuleId = 0,
SaleMoney = 0, SaleMoney = 0,
OrderSaleMoney = qitem.PreferPrice - qitem.DiscountMoney, OrderSaleMoney = orderYJ,
Type = 3, Type = 3,
Remark = Remark Remark = Remark
}); });
...@@ -928,7 +952,7 @@ namespace Edu.Module.Course ...@@ -928,7 +952,7 @@ namespace Edu.Module.Course
{ {
var orderChildList = teaOrderList.Where(x => x.HelpEnterId == teaId).ToList(); var orderChildList = teaOrderList.Where(x => x.HelpEnterId == teaId).ToList();
//计算老师业绩 //计算老师业绩
decimal YjMoney = orderChildList.Sum(x => x.PreferPrice - x.DiscountMoney); decimal YjMoney = orderChildList.Sum(x => x.PreferPrice - x.DiscountMoney - x.PlatformTax - x.CoursewareFee - x.TextbookFee);
//根据业绩所在区间 查询比例 //根据业绩所在区间 查询比例
var rateModel = item.RateList.Where(x => x.StartValue < YjMoney && (x.EndValue >= YjMoney || x.EndValue == -1)).FirstOrDefault(); var rateModel = item.RateList.Where(x => x.StartValue < YjMoney && (x.EndValue >= YjMoney || x.EndValue == -1)).FirstOrDefault();
if (rateModel != null) if (rateModel != null)
...@@ -937,7 +961,7 @@ namespace Edu.Module.Course ...@@ -937,7 +961,7 @@ namespace Edu.Module.Course
{ {
//当前订单的业绩 //当前订单的业绩
decimal bdCommission = bdList.Where(x => x.OrderId == qitem.OrderId).Sum(x => x.CommissionMoeny); decimal bdCommission = bdList.Where(x => x.OrderId == qitem.OrderId).Sum(x => x.CommissionMoeny);
decimal orderYj = qitem.PreferPrice - qitem.DiscountMoney; decimal orderYj = qitem.PreferPrice - qitem.DiscountMoney - qitem.PlatformTax - qitem.CoursewareFee - qitem.TextbookFee;
AchEmpList.Add(new RB_Sell_Achievements_Emp_ViewModel() AchEmpList.Add(new RB_Sell_Achievements_Emp_ViewModel()
{ {
EmpId = qitem.HelpEnterId, EmpId = qitem.HelpEnterId,
...@@ -970,8 +994,7 @@ namespace Edu.Module.Course ...@@ -970,8 +994,7 @@ namespace Edu.Module.Course
//市场 //市场
if (item.Type == 1) if (item.Type == 1)
{ {
var sellOrderList = orderList.Where(x => x.EnterID > 0 && ("," + item.EmpIds + ",").Contains("," + x.EnterID + ",") && ("," + item.SchoolIds + ",").Contains("," + x.ClassSchoolId + ",")).ToList(); var sellOrderList = orderList.Where(x => x.EnterID > 0 && x.ClassScrollType != 3 && ("," + item.EmpIds + ",").Contains("," + x.EnterID + ",") && ("," + item.SchoolIds + ",").Contains("," + x.ClassSchoolId + ",")).ToList();
sellOrderList = sellOrderList.Where(x => x.JoinType != Common.Enum.Sale.OrderJoinTypeEnum.RenewOrder).ToList();//市场排除续费订单
if (!string.IsNullOrEmpty(item.CourseIds)) if (!string.IsNullOrEmpty(item.CourseIds))
{ {
if (item.CourseType == 1) if (item.CourseType == 1)
...@@ -983,30 +1006,43 @@ namespace Edu.Module.Course ...@@ -983,30 +1006,43 @@ namespace Edu.Module.Course
sellOrderList = sellOrderList.Where(x => !("," + item.CourseIds + ",").Contains("," + x.CourseId + ",")).ToList(); sellOrderList = sellOrderList.Where(x => !("," + item.CourseIds + ",").Contains("," + x.CourseId + ",")).ToList();
} }
} }
//计算当月人头数 计算人头奖励 包含续费的
int PeopleNum = sellOrderList.Where(x => x.Refund <= 0).Count();
sellOrderList = sellOrderList.Where(x => x.JoinType != Common.Enum.Sale.OrderJoinTypeEnum.RenewOrder).ToList();//市场排除续费订单
if (sellOrderList.Any()) if (sellOrderList.Any())
{ {
//计算一下 退费金额,要算入当期的业绩里
decimal TRefund = ROrderList.Where(x => ("," + item.EmpIds + ",").Contains("," + x.EmpId + ",")).Sum(x => x.Remark.Contains("销售额减半计算") ? (x.OrderMoney - x.OrderSaleMoney) / 2 : x.OrderMoney - x.OrderSaleMoney);
//计算市场业绩 如果有 老师提成,
decimal TotalYj = sellOrderList.Sum(x => x.HelpEnterId > 0 ? (x.PreferPrice - x.DiscountMoney - x.PlatformTax - x.CoursewareFee - x.TextbookFee) / 2 : x.PreferPrice - x.DiscountMoney - x.PlatformTax - x.CoursewareFee - x.TextbookFee);
//计算订单返佣
decimal bdCommTotal = bdList.Where(x => sellOrderList.Select(x => x.OrderId).Contains(x.OrderId)).Sum(x => x.CommissionMoeny);
TotalYj -= bdCommTotal;// 需要减去 返佣的部分
TotalYj += TRefund;//减去 这期退费的
var awardModel = item.ZGAwardList.Where(x => x.StartValue <= PeopleNum && (x.EndValue >= PeopleNum || x.EndValue == -1)).FirstOrDefault();
//这里应该要根据每个人的求 //这里应该要根据每个人的求
var enterList = sellOrderList.Select(x => x.EnterID).Distinct().ToList(); var enterList = sellOrderList.Select(x => x.EnterID).Distinct().ToList();
foreach (var enterId in enterList) foreach (var enterId in enterList)
{ {
var orderChildList = sellOrderList.Where(x => x.EnterID == enterId).ToList(); var orderChildList = sellOrderList.Where(x => x.EnterID == enterId).ToList();
//计算市场业绩
decimal TotalYj = orderChildList.Sum(x => x.PreferPrice - x.DiscountMoney);
//查询老师的提成 //查询老师的提成
decimal teacherMoney = AchEmpList.Where(x => x.Type == 3 && orderChildList.Select(y => y.OrderId).Contains(x.OrderId)).Sum(x => x.PushMoney); //decimal teacherMoney = AchEmpList.Where(x => x.Type == 3 && orderChildList.Select(y => y.OrderId).Contains(x.OrderId)).Sum(x => x.PushMoney);
decimal YjMoney = TotalYj - teacherMoney;//排除老师的提成 //decimal YjMoney = TotalYj;// - teacherMoney;//排除老师的提成 ld 2024-08-27 不用减去 老师提成
if (item.SendType == 1) if (item.SendType == 1)
{ {
//根据业绩所在区间 查询比例 //根据业绩所在区间 查询比例
var rateModel = item.RateList.Where(x => x.StartValue < YjMoney && (x.EndValue >= YjMoney || x.EndValue == -1)).FirstOrDefault(); var rateModel = item.RateList.Where(x => x.StartValue < TotalYj && (x.EndValue >= TotalYj || x.EndValue == -1)).FirstOrDefault();
if (rateModel != null) if (rateModel != null)
{ {
foreach (var qitem in orderChildList) foreach (var qitem in orderChildList)
{ {
//当前订单的业绩 //当前订单的业绩
decimal bdCommission = bdList.Where(x => x.OrderId == qitem.OrderId).Sum(x => x.CommissionMoeny); decimal bdCommission = bdList.Where(x => x.OrderId == qitem.OrderId).Sum(x => x.CommissionMoeny);
decimal tCommission = AchEmpList.Where(x => x.Type == 3 && x.OrderId == qitem.OrderId).Sum(x => x.PushMoney); //decimal tCommission = AchEmpList.Where(x => x.Type == 3 && x.OrderId == qitem.OrderId).Sum(x => x.PushMoney);
decimal orderYj = qitem.PreferPrice - qitem.DiscountMoney; decimal orderYj = qitem.PreferPrice - qitem.DiscountMoney - qitem.PlatformTax - qitem.CoursewareFee - qitem.TextbookFee - bdCommission;
if (qitem.HelpEnterId > 0) { orderYj = orderYj / 2; }
AchEmpList.Add(new RB_Sell_Achievements_Emp_ViewModel() AchEmpList.Add(new RB_Sell_Achievements_Emp_ViewModel()
{ {
EmpId = qitem.EnterID, EmpId = qitem.EnterID,
...@@ -1020,10 +1056,11 @@ namespace Edu.Module.Course ...@@ -1020,10 +1056,11 @@ namespace Edu.Module.Course
Rate = rateModel.Rate, Rate = rateModel.Rate,
PushMoney = Math.Round(orderYj * rateModel.Rate / 100, 2, MidpointRounding.AwayFromZero), PushMoney = Math.Round(orderYj * rateModel.Rate / 100, 2, MidpointRounding.AwayFromZero),
RuleId = item.Id, RuleId = item.Id,
SaleMoney = YjMoney, SaleMoney = TotalYj,
OrderSaleMoney = orderYj, OrderSaleMoney = orderYj,
PeopleNumMoney = qitem.Refund <= 0 ? awardModel?.Rate ?? 0 : 0,
Type = 1, Type = 1,
Remark = "当月业绩:" + TotalYj + ";当月老师提成:" + teacherMoney + ";订单b2b返佣:" + bdCommission + ";订单老师提成:" + tCommission + ";订单业绩:" + orderYj Remark = "当月业绩:" + TotalYj + (TRefund != 0 ? "(其中退费:" + TRefund + ")" : "") + ";订单b2b返佣:" + bdCommission + ";订单业绩:" + orderYj + (qitem.HelpEnterId > 0 ? ";此单由试听转化,销售额减半计算" : "") + ";当月部门人头:" + PeopleNum + "人,人头奖励:" + (awardModel?.Rate ?? 0)
}); });
} }
} }
...@@ -1051,46 +1088,48 @@ namespace Edu.Module.Course ...@@ -1051,46 +1088,48 @@ namespace Edu.Module.Course
Rate = 0, Rate = 0,
PushMoney = item.PeopleMoney, PushMoney = item.PeopleMoney,
RuleId = item.Id, RuleId = item.Id,
SaleMoney = YjMoney, SaleMoney = TotalYj,
OrderSaleMoney = orderYj, OrderSaleMoney = orderYj,
Type = 1, Type = 1,
Remark = "当月业绩:" + TotalYj + ";当月老师提成:" + teacherMoney + ";订单b2b返佣:" + bdCommission + ";订单老师提成:" + tCommission + ";订单业绩:" + orderYj + ";市场根据人数发放提成:" + item.PeopleMoney + "/人" Remark = "当月业绩:" + TotalYj + ";订单b2b返佣:" + bdCommission + ";订单老师提成:" + tCommission + ";订单业绩:" + orderYj + ";市场根据人数发放提成:" + item.PeopleMoney + "/人"
}); });
} }
} }
} }
} }
if (item.ExtraMoney > 0) #region 屏蔽
{//有效到访额外奖励 //if (item.ExtraMoney > 0)
List<int> EmpList = JsonHelper.DeserializeObject<List<int>>("[" + item.EmpIds + "]"); //{//有效到访额外奖励
foreach (var emp in EmpList) // List<int> EmpList = JsonHelper.DeserializeObject<List<int>>("[" + item.EmpIds + "]");
{ // foreach (var emp in EmpList)
//验证是否有 有效到访奖励 // {
var stuModel = stuList.Where(x => x.CreateBy == emp).FirstOrDefault(); // //验证是否有 有效到访奖励
if (stuModel != null) // var stuModel = stuList.Where(x => x.CreateBy == emp).FirstOrDefault();
{ // if (stuModel != null)
AchEmpList.Add(new RB_Sell_Achievements_Emp_ViewModel() // {
{ // AchEmpList.Add(new RB_Sell_Achievements_Emp_ViewModel()
EmpId = emp, // {
GiveOutMoney = item.ExtraMoney * stuModel.OrderCount, // EmpId = emp,
GiveOutState = 1, // GiveOutMoney = item.ExtraMoney * stuModel.OrderCount,
Group_Id = userInfo.Group_Id, // GiveOutState = 1,
Id = 0, // Group_Id = userInfo.Group_Id,
IsDept = 2, // Id = 0,
OrderId = -1, // IsDept = 2,
PeriodsId = 0, // OrderId = -1,
Rate = 0, // PeriodsId = 0,
PushMoney = item.ExtraMoney * stuModel.OrderCount, // Rate = 0,
RuleId = item.Id, // PushMoney = item.ExtraMoney * stuModel.OrderCount,
SaleMoney = 0, // RuleId = item.Id,
OrderSaleMoney = 0, // SaleMoney = 0,
Type = 1, // OrderSaleMoney = 0,
Remark = "当月满足邀约咨询30分钟以上共计 " + stuModel.OrderCount + "人,奖励 " + item.ExtraMoney * stuModel.OrderCount // Type = 1,
}); // Remark = "当月满足邀约咨询30分钟以上共计 " + stuModel.OrderCount + "人,奖励 " + item.ExtraMoney * stuModel.OrderCount
} // });
} // }
} // }
//}
#endregion
} }
//顾问 //顾问
else else
...@@ -1273,37 +1312,37 @@ namespace Edu.Module.Course ...@@ -1273,37 +1312,37 @@ namespace Edu.Module.Course
} }
} }
//启用部门 //启用部门
if (item.EnableZGAward == 1) //if (item.EnableZGAward == 1)
{ //{
//算计部门下所有人 所有有效到访 // //算计部门下所有人 所有有效到访
int peopleNum = stuList.Where(x => item.ChildEmpIds.Split(',').Contains(x.CreateBy.ToString())).Sum(x => x.OrderCount); // int peopleNum = stuList.Where(x => item.ChildEmpIds.Split(',').Contains(x.CreateBy.ToString())).Sum(x => x.OrderCount);
var awardModel = item.ZGAwardList.Where(x => x.StartValue <= peopleNum && (x.EndValue > peopleNum || x.EndValue == -1)).FirstOrDefault(); // var awardModel = item.ZGAwardList.Where(x => x.StartValue <= peopleNum && (x.EndValue > peopleNum || x.EndValue == -1)).FirstOrDefault();
if (awardModel != null) // if (awardModel != null)
{ // {
foreach (var emp in EmpList) // foreach (var emp in EmpList)
{ // {
AchEmpList.Add(new RB_Sell_Achievements_Emp_ViewModel() // AchEmpList.Add(new RB_Sell_Achievements_Emp_ViewModel()
{ // {
EmpId = emp, // EmpId = emp,
GiveOutMoney = awardModel.Rate, // GiveOutMoney = awardModel.Rate,
GiveOutState = 1, // GiveOutState = 1,
Group_Id = userInfo.Group_Id, // Group_Id = userInfo.Group_Id,
Id = 0, // Id = 0,
IsDept = 1, // IsDept = 1,
OrderId = -1, // OrderId = -1,
PeriodsId = 0, // PeriodsId = 0,
Rate = 0, // Rate = 0,
PushMoney = awardModel.Rate, // PushMoney = awardModel.Rate,
RuleId = item.Id, // RuleId = item.Id,
SaleMoney = 0, // SaleMoney = 0,
OrderSaleMoney = 0, // OrderSaleMoney = 0,
Type = 1, // Type = 1,
Remark = "当月部门下满足邀约咨询30分钟以上共计" + peopleNum + "人,绩效奖励" + awardModel.Rate, // Remark = "当月部门下满足邀约咨询30分钟以上共计" + peopleNum + "人,绩效奖励" + awardModel.Rate,
AwardOrderNum = peopleNum // AwardOrderNum = peopleNum
}); // });
} // }
} // }
} //}
} }
else else
{ {
...@@ -1416,8 +1455,9 @@ namespace Edu.Module.Course ...@@ -1416,8 +1455,9 @@ namespace Edu.Module.Course
IsDept = qitem.IsDept, IsDept = qitem.IsDept,
PeriodsId = 0, PeriodsId = 0,
SaleMoney = 0, SaleMoney = 0,
Remark = "退款回扣提成,此单当期退款:" + (qitem.OrderMoney - qitem.OrderSaleMoney), Remark = "退款回扣提成,此单" + month + "退款:" + (qitem.OrderMoney - qitem.OrderSaleMoney),
OrderSaleMoney = qitem.OrderMoney OrderSaleMoney = qitem.OrderMoney,
PeopleNumMoney = qitem.Refund > 0 ? 0 - qitem.PeopleNumMoney : 0
}); });
} }
} }
...@@ -1456,15 +1496,15 @@ namespace Edu.Module.Course ...@@ -1456,15 +1496,15 @@ namespace Edu.Module.Course
//查询所有的人员 //查询所有的人员
var saleIdList = orderList.Where(x => x.EnterID > 0).Select(x => x.EnterID).Distinct().ToList(); var saleIdList = orderList.Where(x => x.EnterID > 0).Select(x => x.EnterID).Distinct().ToList();
var teacherIdList = orderList.Where(x => x.HelpEnterId > 0).Select(x => x.HelpEnterId).Distinct().ToList(); var teacherIdList = orderList.Where(x => x.HelpEnterId > 0).Select(x => x.HelpEnterId).Distinct().ToList();
var consultantIdList = orderList.Where(x => x.CourseConsultantId > 0).Select(x => x.CourseConsultantId).Distinct().ToList(); //var consultantIdList = orderList.Where(x => x.CourseConsultantId > 0).Select(x => x.CourseConsultantId).Distinct().ToList();
if (teacherIdList.Any()) if (teacherIdList.Any())
{ {
saleIdList.AddRange(teacherIdList); saleIdList.AddRange(teacherIdList);
} }
if (consultantIdList.Any()) //if (consultantIdList.Any())
{ //{
saleIdList.AddRange(consultantIdList); // saleIdList.AddRange(consultantIdList);
} //}
if (AchEmpList.Where(x => x.Remark.Contains("退款回扣")).Any()) if (AchEmpList.Where(x => x.Remark.Contains("退款回扣")).Any())
{ {
saleIdList.AddRange(AchEmpList.Where(x => x.Remark.Contains("退款回扣")).Select(x => x.EmpId)); saleIdList.AddRange(AchEmpList.Where(x => x.Remark.Contains("退款回扣")).Select(x => x.EmpId));
...@@ -1551,7 +1591,8 @@ namespace Edu.Module.Course ...@@ -1551,7 +1591,8 @@ namespace Edu.Module.Course
DeductionMoney = 0, DeductionMoney = 0,
IsDept = AchModel.IsDept, IsDept = AchModel.IsDept,
UserType = AchModel.Type, UserType = AchModel.Type,
RelatedId = AchModel.Id RelatedId = AchModel.Id,
PeopleNumMoney = 0
}); });
AchModel.GiveOutMoney = SaleCommissioned; AchModel.GiveOutMoney = SaleCommissioned;
...@@ -1588,7 +1629,8 @@ namespace Edu.Module.Course ...@@ -1588,7 +1629,8 @@ namespace Edu.Module.Course
DeductionMoney = 0, DeductionMoney = 0,
IsDept = AchModel.IsDept, IsDept = AchModel.IsDept,
UserType = AchModel.Type, UserType = AchModel.Type,
RelatedId = AchModel.Id RelatedId = AchModel.Id,
PeopleNumMoney = AchModel.PeopleNumMoney
}); });
AchModel.GiveOutMoney = YFCommission; AchModel.GiveOutMoney = YFCommission;
AchModel.GiveOutState = 1; AchModel.GiveOutState = 1;
...@@ -1651,7 +1693,8 @@ namespace Edu.Module.Course ...@@ -1651,7 +1693,8 @@ namespace Edu.Module.Course
DeductionMoney = 0, DeductionMoney = 0,
IsDept = AchModel.IsDept, IsDept = AchModel.IsDept,
UserType = AchModel.Type, UserType = AchModel.Type,
RelatedId = AchModel.Id RelatedId = AchModel.Id,
PeopleNumMoney = AchModel.PeopleNumMoney
}); });
AchModel.GiveOutMoney = FirstMoney; AchModel.GiveOutMoney = FirstMoney;
if (ruleModel.FirstRate == 100) if (ruleModel.FirstRate == 100)
...@@ -1719,6 +1762,7 @@ namespace Edu.Module.Course ...@@ -1719,6 +1762,7 @@ namespace Edu.Module.Course
detailModel.GiveOutMoney = detailModel.CommissionMoney; detailModel.GiveOutMoney = detailModel.CommissionMoney;
detailModel.RelatedId = AchEmpList.Where(x => x.Remark.Contains("退款回扣") && x.OrderId == qitem.OrderId && x.EmpId == qitem.EmpId && x.Type == qitem.Type).FirstOrDefault()?.Id ?? 0; detailModel.RelatedId = AchEmpList.Where(x => x.Remark.Contains("退款回扣") && x.OrderId == qitem.OrderId && x.EmpId == qitem.EmpId && x.Type == qitem.Type).FirstOrDefault()?.Id ?? 0;
detailModel.FirstRate = 100; detailModel.FirstRate = 100;
detailModel.PeopleNumMoney = qitem.Refund > 0 ? 0 - qitem.PeopleNumMoney : 0;
CurrentList.Add(JsonHelper.DeserializeObject<RB_Sell_Achievements_Details_ViewModel>(JsonHelper.Serialize(detailModel))); CurrentList.Add(JsonHelper.DeserializeObject<RB_Sell_Achievements_Details_ViewModel>(JsonHelper.Serialize(detailModel)));
} }
} }
...@@ -1826,7 +1870,7 @@ namespace Edu.Module.Course ...@@ -1826,7 +1870,7 @@ namespace Edu.Module.Course
} }
#region 计算累计应发 #region 计算累计应发
decimal SumPrice = NorList.Sum(x => x.CurrentPeriodMoney + x.DeductionMoney); decimal SumPrice = NorList.Sum(x => x.CurrentPeriodMoney + x.DeductionMoney + x.PeopleNumMoney);
Dictionary<string, object> keyValues = new Dictionary<string, object>() { Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Sell_Achievements_Periods.SumPrice),SumPrice} { nameof(RB_Sell_Achievements_Periods.SumPrice),SumPrice}
}; };
...@@ -1945,6 +1989,7 @@ namespace Edu.Module.Course ...@@ -1945,6 +1989,7 @@ namespace Edu.Module.Course
/// <param name="orderId"></param> /// <param name="orderId"></param>
public bool ValidataAchievements(int orderId) public bool ValidataAchievements(int orderId)
{ {
return true;
DateTime EnableDate = Convert.ToDateTime(Config.NewAchievementsEnable); DateTime EnableDate = Convert.ToDateTime(Config.NewAchievementsEnable);
//查询订单信息 //查询订单信息
var orderModel = orderRepository.GetEntity(orderId); var orderModel = orderRepository.GetEntity(orderId);
...@@ -2408,13 +2453,20 @@ namespace Edu.Module.Course ...@@ -2408,13 +2453,20 @@ namespace Edu.Module.Course
public string GetSellAchievementsChangeLog(int orderId, int userId, int userType, int isDept, int groupId, out string msg) public string GetSellAchievementsChangeLog(int orderId, int userId, int userType, int isDept, int groupId, out string msg)
{ {
msg = ""; msg = "";
var empModel = sell_Achievements_EmpRepository.GetList(new RB_Sell_Achievements_Emp_ViewModel() { Group_Id = groupId, OrderId = orderId, EmpId = userId, Type = userType, IsDept = isDept }).FirstOrDefault(); var empList = sell_Achievements_EmpRepository.GetList(new RB_Sell_Achievements_Emp_ViewModel() { Group_Id = groupId, OrderId = orderId, EmpId = userId, Type = userType, IsDept = isDept }).ToList();
if (empModel == null) if (!empList.Any())
{ {
msg = "未查询到相关信息"; msg = "未查询到相关信息";
return ""; return "";
} }
return "业绩比例:" + empModel.Rate + "%;业绩描述:" + empModel.Remark;
string rmsg = ""; int Num = 1;
foreach (var item in empList.OrderBy(x => x.Id))
{
rmsg += Num + "、" + "业绩比例:" + item.Rate + "%;业绩描述:" + item.Remark + ";";
Num++;
}
return rmsg;
} }
#endregion #endregion
......
...@@ -80,12 +80,12 @@ WHERE a.`Status`=0 and s.Group_Id ={group_Id} and s.`Status`=0 and a.AssistId ={ ...@@ -80,12 +80,12 @@ WHERE a.`Status`=0 and s.Group_Id ={group_Id} and s.`Status`=0 and a.AssistId ={
/// </summary> /// </summary>
/// <param name="orderIds"></param> /// <param name="orderIds"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_Student_Assist_Extend> GetAssistTeacherForOrder(string orderIds) { public List<RB_Student_Assist_Extend> GetAssistTeacherForOrder(string orderIds,bool IsZJS = true ) {
string sql = $@"SELECT og.OrderId,a.AssistId FROM rb_student_orderguest og string sql = $@"SELECT og.OrderId,a.AssistId FROM rb_student_orderguest og
INNER JOIN rb_student_assist a on og.Student_Id =a.StuId INNER JOIN rb_student_assist a on og.Student_Id =a.StuId
INNER JOIN rb_student s on og.Student_Id =s.StuId INNER JOIN rb_student s on og.Student_Id =s.StuId
INNER JOIN rb_account ac on a.AssistId = ac.Id INNER JOIN rb_account ac on a.AssistId = ac.Id
WHERE og.`Status` =0 and a.`Status` =0 and og.OrderId in({orderIds}) and a.AssistType =4 and s.CreateType =4 and ac.AccountType =2"; WHERE og.`Status` =0 and a.`Status` =0 and og.OrderId in({orderIds}) and a.AssistType =4 {(IsZJS ? "and s.CreateType =4" : "")} and ac.AccountType =2";
return Get<RB_Student_Assist_Extend>(sql).ToList(); return Get<RB_Student_Assist_Extend>(sql).ToList();
} }
......
...@@ -223,7 +223,7 @@ from RB_Sell_Achievements_Details r where {where} order by r.Id asc"; ...@@ -223,7 +223,7 @@ from RB_Sell_Achievements_Details r where {where} order by r.Id asc";
} }
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,sum(r.PeopleNumMoney) as PeopleNumMoney
from RB_Sell_Achievements_Details r where {where} group by r.UserId,r.Depart_Id,r.School_Id"; from RB_Sell_Achievements_Details r where {where} group by r.UserId,r.Depart_Id,r.School_Id";
return Get<RB_Sell_Achievements_Details_ViewModel>(sql).ToList(); return Get<RB_Sell_Achievements_Details_ViewModel>(sql).ToList();
} }
...@@ -236,7 +236,7 @@ from RB_Sell_Achievements_Details r where {where} group by r.UserId,r.Depart_Id, ...@@ -236,7 +236,7 @@ from RB_Sell_Achievements_Details r where {where} group by r.UserId,r.Depart_Id,
/// <returns></returns> /// <returns></returns>
public List<RB_Sell_Achievements_Details_ViewModel> GetSchoolCommission(int schoolId, string periodsIds) public List<RB_Sell_Achievements_Details_ViewModel> GetSchoolCommission(int schoolId, string periodsIds)
{ {
string sql = $@"select PeriodId,SUM(CurrentPeriodMoney) as CurrentPeriodMoney from RB_Sell_Achievements_Details string sql = $@"select PeriodId,SUM(CurrentPeriodMoney+PeopleNumMoney) as CurrentPeriodMoney from RB_Sell_Achievements_Details
WHERE School_Id ={schoolId} and PeriodId in ({periodsIds}) WHERE School_Id ={schoolId} and PeriodId in ({periodsIds})
GROUP BY PeriodId "; GROUP BY PeriodId ";
...@@ -290,7 +290,7 @@ GROUP BY PeriodId "; ...@@ -290,7 +290,7 @@ GROUP BY PeriodId ";
} }
string sql = $@" select sum(r.CurrentPeriodMoney + r.DeductionMoney) from RB_Sell_Achievements_Details r where {where}"; string sql = $@" select sum(r.CurrentPeriodMoney + r.DeductionMoney + r.PeopleNumMoney) from RB_Sell_Achievements_Details r where {where}";
var obj = ExecuteScalar(sql); var obj = ExecuteScalar(sql);
return obj == null ? 0 : Convert.ToDecimal(obj); return obj == null ? 0 : Convert.ToDecimal(obj);
} }
......
...@@ -171,7 +171,7 @@ GROUP BY g.RenewState"; ...@@ -171,7 +171,7 @@ GROUP BY g.RenewState";
public List<RB_Sell_Achievements_Emp_ViewModel> GetSellAchievementsRankStat(List<string> monthList, int group_Id) public List<RB_Sell_Achievements_Emp_ViewModel> GetSellAchievementsRankStat(List<string> monthList, int group_Id)
{ {
string sql = $@"SELECT e.Type,e.EmpId,e.Rate,e.IsDept,p.Periods,SUM(e.PushMoney) as PushMoney,Max(e.SaleMoney) as SaleMoney, string sql = $@"SELECT e.Type,e.EmpId,e.Rate,e.IsDept,p.Periods,SUM(e.PushMoney) as PushMoney,Max(e.SaleMoney) as SaleMoney,
SUM(e.OrderSaleMoney) as OrderSaleMoney,SUM(o.PreferPrice - o.DiscountMoney - e.OrderSaleMoney) as CommissionMoney SUM(e.OrderSaleMoney) as OrderSaleMoney,SUM(o.PreferPrice - o.DiscountMoney - o.PlatformTax - o.CoursewareFee - o.TotalClassHours - e.OrderSaleMoney) as CommissionMoney
FROM rb_sell_achievements_emp e FROM rb_sell_achievements_emp e
INNER JOIN rb_sell_achievements_periods p on e.PeriodsId = p.Id INNER JOIN rb_sell_achievements_periods p on e.PeriodsId = p.Id
INNER JOIN rb_order o on e.OrderId = o.OrderId INNER JOIN rb_order o on e.OrderId = o.OrderId
...@@ -188,9 +188,9 @@ GROUP BY e.Type,e.EmpId,e.Rate,e.IsDept,p.Periods"; ...@@ -188,9 +188,9 @@ GROUP BY e.Type,e.EmpId,e.Rate,e.IsDept,p.Periods";
/// <returns></returns> /// <returns></returns>
public List<RB_Sell_Achievements_Emp_ViewModel> GetAllRefundWaitPendingList(int group_Id) public List<RB_Sell_Achievements_Emp_ViewModel> GetAllRefundWaitPendingList(int group_Id)
{ {
string sql = $@"SELECT e.*,(o.Income + o.PlatformTax -o.Refund) as OrderMoney FROM rb_sell_achievements_emp e string sql = $@"SELECT e.*,(o.Income - o.Refund - o.CoursewareFee - o.TotalClassHours) as OrderMoney,o.Refund FROM rb_sell_achievements_emp e
LEFT JOIN rb_order o on e.OrderId =o.OrderId LEFT JOIN rb_order o on e.OrderId =o.OrderId
WHERE e.Group_Id={group_Id} and (e.Type=2 or (e.Type=1 and e.IsDept=1)) and e.OrderSaleMoney <> (o.Income + o.PlatformTax -o.Refund) and e.OrderId>0 and e.Remark not like '%退款回扣%' WHERE e.Group_Id={group_Id} and o.CreateTime >='2023-10-01' and (e.Type=2 or (e.Type=1 and e.IsDept=1)) and e.OrderSaleMoney <> (o.Income - o.Refund - o.CoursewareFee - o.TotalClassHours) and e.OrderId>0 and e.Remark not like '%退款回扣%'
ORDER BY e.OrderId ASC "; ORDER BY e.OrderId ASC ";
return Get<RB_Sell_Achievements_Emp_ViewModel>(sql).ToList(); return Get<RB_Sell_Achievements_Emp_ViewModel>(sql).ToList();
} }
......
...@@ -265,7 +265,8 @@ namespace Edu.WebApi.Controllers.Course ...@@ -265,7 +265,8 @@ namespace Edu.WebApi.Controllers.Course
x.UserId, x.UserId,
x.UserName, x.UserName,
x.StudentCount, x.StudentCount,
x.CurrentPeriodMoney x.CurrentPeriodMoney,
x.PeopleNumMoney
})); }));
} }
...@@ -313,7 +314,8 @@ namespace Edu.WebApi.Controllers.Course ...@@ -313,7 +314,8 @@ namespace Edu.WebApi.Controllers.Course
x.DeductionMoney, x.DeductionMoney,
YFMoney = x.CurrentPeriodMoney + x.DeductionMoney, YFMoney = x.CurrentPeriodMoney + x.DeductionMoney,
x.UserType, x.UserType,
x.IsDept x.IsDept,
x.PeopleNumMoney
})); }));
} }
...@@ -360,7 +362,8 @@ namespace Edu.WebApi.Controllers.Course ...@@ -360,7 +362,8 @@ namespace Edu.WebApi.Controllers.Course
x.DeductionMoney, x.DeductionMoney,
YFMoney = x.CurrentPeriodMoney + x.DeductionMoney, YFMoney = x.CurrentPeriodMoney + x.DeductionMoney,
x.UserType, x.UserType,
x.IsDept x.IsDept,
x.PeopleNumMoney
})); }));
} }
...@@ -408,7 +411,8 @@ namespace Edu.WebApi.Controllers.Course ...@@ -408,7 +411,8 @@ namespace Edu.WebApi.Controllers.Course
x.DeductionMoney, x.DeductionMoney,
YFMoney = x.CurrentPeriodMoney + x.DeductionMoney, YFMoney = x.CurrentPeriodMoney + x.DeductionMoney,
x.UserType, x.UserType,
x.IsDept x.IsDept,
x.PeopleNumMoney
}) })
}; };
return ApiResult.Success("", pageModel); return ApiResult.Success("", pageModel);
...@@ -448,6 +452,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -448,6 +452,7 @@ namespace Edu.WebApi.Controllers.Course
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 }
} }
...@@ -483,6 +488,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -483,6 +488,7 @@ namespace Edu.WebApi.Controllers.Course
new ExcelColumn(value: (item.CurrentPeriodMoney).ToString("#0.00")){ }, new ExcelColumn(value: (item.CurrentPeriodMoney).ToString("#0.00")){ },
new ExcelColumn(value: (item.DeductionMoney).ToString("#0.00")){ }, new ExcelColumn(value: (item.DeductionMoney).ToString("#0.00")){ },
new ExcelColumn(value: (item.CurrentPeriodMoney + item.DeductionMoney).ToString("#0.00")){ }, new ExcelColumn(value: (item.CurrentPeriodMoney + item.DeductionMoney).ToString("#0.00")){ },
new ExcelColumn(value: (item.PeopleNumMoney).ToString("#0.00")){ },
new ExcelColumn(value: item.Periods){ }, new ExcelColumn(value: item.Periods){ },
new ExcelColumn(value: item.Remark){ }, new ExcelColumn(value: item.Remark){ },
}, },
...@@ -513,9 +519,10 @@ namespace Edu.WebApi.Controllers.Course ...@@ -513,9 +519,10 @@ 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: list.Sum(x=>x.CurrentPeriodMoney + x.DeductionMoney).ToString("#0.00")){ },
new ExcelColumn(value: list.Sum(x=>x.PeopleNumMoney).ToString("#0.00")){ },
new ExcelColumn(value: TotalMoney.ToString("#0.00")){ }, new ExcelColumn(value: TotalMoney.ToString("#0.00")){ },
new ExcelColumn(value: ""){ }, new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
}, },
ColumnHight = 30 ColumnHight = 30
}; };
......
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