Commit f2c48a7d authored by liudong1993's avatar liudong1993

1

parent 0d345a79
......@@ -90,5 +90,15 @@ namespace Edu.Model.ViewModel.Sell
/// 订单类型
/// </summary>
public OrderTypeEnum OrderType { get; set; }
/// <summary>
/// 总课时费
/// </summary>
public decimal TotalHours { get; set; }
/// <summary>
/// 已上课课时
/// </summary>
public decimal CompleteHours { get; set; }
}
}
......@@ -464,7 +464,7 @@ namespace Edu.Module.Course
};
if (model.OrderType == OrderTypeEnum.CourseOrder)
{
FormatOrderCommissionByCourse(ref commissionModel, model.CourseId, 0);
FormatOrderCommissionByCourse(ref commissionModel, model.CourseId, model.PreferPrice - model.DiscountMoney);
}
else if (model.OrderType == OrderTypeEnum.StudyabroadOrder)
{
......@@ -502,7 +502,22 @@ namespace Edu.Module.Course
};
//查询符合返佣条件的学员(非订单)
var list = returnComissionRepository.GetListBySetBatch(gid, type);
#region 处理需要 开课后才发放
if (list.Where(x => x.CommissionReType == 3).Any())
{
List<int> NotOrder = new List<int>();
//判断 课时进度是否达到发放标准
foreach (var item in list.Where(x => x.CommissionReType == 3)) {
if (item.CommissionReValue > (item.CompleteHours / item.TotalHours) *100) {
//未达标
NotOrder.Add(item.OrderId);
}
}
if (NotOrder.Any()) {
list = list.Where(x => !NotOrder.Contains(x.OrderId)).ToList();
}
}
#endregion
if (list.Any())
{
//开始生成用户待提现的金额
......@@ -658,8 +673,8 @@ namespace Edu.Module.Course
{
m.CommissionMoeny = customerCompany.RebateMoney;
}
m.CommissionReType = (int)CourseRebateSetEnum.NextMonth;
m.CommissionReValue = 0;
m.CommissionReType = (int)CourseRebateSetEnum.CourseProportion;
m.CommissionReValue = Convert.ToDecimal(0.01);
m.Remark = $"学员来源为:同业,学员为首次报名,本次报名金额为:{sellPrice},本次返佣金额为:{m.CommissionMoeny:0.00}";
}
else
......
......@@ -767,8 +767,7 @@ namespace Edu.Module.Course
string SchoolIds = string.Join(",", rulelist.Select(x => x.SchoolIds));
//查询 班级订单 1.尾款收齐
//string SDate = "2024-08-01";
string SDate = "2023-11-01";
string SDate = "2024-08-01";
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);//查询所有的
List<RB_Sell_Achievements_Emp_ViewModel> AchEmpList = new List<RB_Sell_Achievements_Emp_ViewModel>();//需要新增当月的
......@@ -777,7 +776,6 @@ namespace Edu.Module.Course
//查询历史所有 退费的单子 汇总金额计入其当月的业绩计算 并回扣所有订单的提成(是 2023-10月这一期开始 回扣提成 ) PeriodId =64 开始扣提成
//首先查询 所有退费的单子
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 });
......@@ -1699,9 +1697,9 @@ namespace Edu.Module.Course
{
ruleModel = new RB_Sell_Achievements_Rule_ViewModel()
{
CourseRate = 0,
CourseRate = Convert.ToDecimal(0.01),
FirstRate = 100
};//规则不存在的这种情况
};//规则不存在的这种情况 默认开课后发放提成
}
//验证是否满足 上课课时超15%sss
if (TotalLearn >= TotalHours * (ruleModel.CourseRate / 100) || item.OrderType == Common.Enum.Sale.OrderTypeEnum.StudyabroadOrder)
......@@ -1753,6 +1751,34 @@ namespace Edu.Module.Course
}
}
}
else {
decimal FirstMoney = Math.Round(YFCommission * ruleModel.FirstRate / 100, 2, MidpointRounding.AwayFromZero);
CurrentList.Add(new RB_Sell_Achievements_Details_ViewModel()
{
UserId = AchModel.EmpId,
OrderId = item.OrderId,
CurrentPeriodMoney = 0,
IsFirstCommission = 1,
Remark = "未达到发放标准,待发提成:" + FirstMoney + ",待发人头奖励:" + AchModel.PeopleNumMoney,
ClassId = item.ClassId,
ClassType = classModel.ClassType,
PeriodId = 0,
Periods = month,
CommissionMoney = YFCommission,
StudentCount = item.GuestNum,
TotalHours = Convert.ToInt32(TotalHours),
TotalLearn = Convert.ToInt32(TotalLearn),
CurrentHours = -1,//这种首次发放提成的 没有课时消费
GiveOutMoney = 0,
FirstRate = 0,
DeductionMoney = 0,
IsDept = AchModel.IsDept,
UserType = AchModel.Type,
RelatedId = AchModel.Id,
PeopleNumMoney = 0
});
}
}
#endregion
}
......
......@@ -58,7 +58,7 @@ namespace Edu.Repository.Sell
/// <returns></returns>
public List<RB_Order_ReturnComission_ViewModel> GetListBySetBatch(int groupId, int type)
{
var sql = @"select a.* from rb_order_returncomission a
var sql = @"select a.*,c.TotalHours,c.CompleteHours from rb_order_returncomission a
left join rb_student_orderguest b on a.OrderId=b.OrderId and a.StuId=b.Student_Id
left join rb_order_guest c on b.GuestId=c.Id
where a.`Status`=0 and c.CreateTime<date_add(curdate(),interval -day(curdate())+1 day) and a.GroupId=@gid and a.CommissionType=@type";
......
......@@ -190,7 +190,7 @@ GROUP BY e.Type,e.EmpId,e.Rate,e.IsDept,p.Periods";
{
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
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 '%退款回扣%'
WHERE e.Group_Id={group_Id} and o.CreateTime >='2024-08-01' and e.GiveOutState =1 and (e.Type=2 or (e.Type=1 and e.IsDept=1)) and o.PreferPrice >0 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 ";
return Get<RB_Sell_Achievements_Emp_ViewModel>(sql).ToList();
}
......
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