Commit 74863955 authored by 吴春's avatar 吴春

提交代码

parents e9cb1284 ab48fe18
......@@ -509,7 +509,7 @@ namespace Edu.Module.Course
return flag;
}
}
else if (demodel.JoinType == OrderJoinTypeEnum.TransOrder)
else if (demodel.JoinType == OrderJoinTypeEnum.TransOrder || demodel.JoinType== OrderJoinTypeEnum.SplitOrder)
{
//不验证应收
}
......
......@@ -312,11 +312,15 @@ namespace Edu.Module.EduTask
if (subItem.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.OrderTransClass)
{
string transClassIds = string.Join(",", list.Where(qitem => qitem.ReceiptType == subItem.ReceiptType).Select(qitem => qitem.RelationId));
orderTransList = order_ChangeRepository.GetOrderChangeListRepository(new RB_Order_Change_ViewModel()
var tempList = order_ChangeRepository.GetOrderChangeListRepository(new RB_Order_Change_ViewModel()
{
QIds = transClassIds,
ChangeType = 1,
});
if (tempList != null && tempList.Count > 0)
{
orderTransList.AddRange(tempList);
}
}
#endregion
......@@ -324,11 +328,15 @@ namespace Edu.Module.EduTask
if (subItem.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.OrderSplitClass)
{
string transClassIds = string.Join(",", list.Where(qitem => qitem.ReceiptType == subItem.ReceiptType).Select(qitem => qitem.RelationId));
orderTransList = order_ChangeRepository.GetOrderChangeListRepository(new RB_Order_Change_ViewModel()
var tempList = order_ChangeRepository.GetOrderChangeListRepository(new RB_Order_Change_ViewModel()
{
QIds = transClassIds,
ChangeType = 2,
});
if (tempList != null && tempList.Count > 0)
{
orderTransList.AddRange(tempList);
}
}
#endregion
}
......
......@@ -200,10 +200,10 @@ namespace Edu.Module.EduTask
if (orderChangeModel != null && orderChangeModel.Id > 0)
{
if (orderChangeModel.EffectiveDate < DateTime.Now)
{
return false;
}
//if (orderChangeModel.EffectiveDate < DateTime.Now)
//{
// return false;
//}
var oldOrderModel = orderRepository.GetEntity(orderChangeModel.SourceOrderId);
var classList = classRepository.GetClassListRepository(new RB_Class_ViewModel()
{
......@@ -270,6 +270,14 @@ namespace Edu.Module.EduTask
orderModel.UpdateBy = userInfo.Id;
orderModel.UpdateTime = DateTime.Now;
orderModel.OldGuestId = orderChangeModel.OrderGuestId;
if (oldOrderModel.SourceOrderId > 0)
{
orderModel.FirstOrderId = oldOrderModel.SourceOrderId;
}
else
{
orderModel.FirstOrderId = oldOrderModel.OrderId;
}
flag = orderModule.SetClassOrderCommonModule(orderModel, userInfo, false, out string message);
#endregion
......@@ -579,6 +587,23 @@ namespace Edu.Module.EduTask
return flag;
}
/// <summary>
/// 测试生成单据
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public bool TestUpdateOrderSplitModule(int Id,int Type)
{
var model = education_ReceiptRepository.GetEntity(Id);
if (Type == 1)
{
return UpdateOrderChangeModule(model);
}
else
{
return UpdateOrderSplitModule(model);
}
}
/// <summary>
/// 订单分拆处理类方法
......@@ -611,10 +636,14 @@ namespace Edu.Module.EduTask
});
var oldClassModel = classList?.Where(qitem => qitem.ClassId == oldOrderModel.ClassId)?.FirstOrDefault() ?? new RB_Class_ViewModel();
var newClassModel = classList?.Where(qitem => qitem.ClassId == orderChangeModel.NewClassId)?.FirstOrDefault() ?? new RB_Class_ViewModel();
//班级有效课时
var courseValidHourse = planList?.Sum(qitem => qitem.TimeHour) ?? 0;
//新课程信息
var newCourseModel = courseList?.Where(qitem => qitem.CourseId == orderChangeModel.NewCourseId)?.FirstOrDefault() ?? new RB_Course_ViewModel();
//班级有效课时
var courseValidHourse = planList?.Sum(qitem => qitem.TimeHour) ?? 0;
if (courseValidHourse > newCourseModel.ClassHours)
{
courseValidHourse = newCourseModel.ClassHours;
}
//原课程信息
var oldCourseModel = courseList.Where(qitem => qitem.CourseId == oldOrderModel.CourseId)?.FirstOrDefault() ?? new RB_Course_ViewModel();
......@@ -656,6 +685,7 @@ namespace Edu.Module.EduTask
JoinType = Common.Enum.Sale.OrderJoinTypeEnum.SplitOrder,
TargetJoinType = oldOrderModel.JoinType,
EffectTime = orderChangeModel.EffectiveDate,
};
orderModel.SourceOrderId = orderChangeModel.SourceOrderId;
orderModel.Group_Id = userInfo.Group_Id;
......@@ -671,6 +701,15 @@ namespace Edu.Module.EduTask
orderModel.UpdateTime = DateTime.Now;
orderModel.OldGuestId = orderChangeModel.OrderGuestId;
orderModel.NewGuestTotalClassHours = Convert.ToInt32(courseValidHourse);
orderModel.SourceOrderId = orderChangeModel.SourceOrderId;
if (oldOrderModel.TargetOrderId==0)
{
orderModel.FirstOrderId = oldOrderModel.OrderId;
}
else
{
orderModel.FirstOrderId = oldOrderModel.SourceOrderId;
}
flag = orderModule.SetClassOrderCommonModule(orderModel, userInfo, false, out string message);
#endregion
......@@ -679,7 +718,7 @@ namespace Edu.Module.EduTask
//添加关联记录
splitDetailsRepository.Insert(new RB_Order_SplitDetails()
{
OldOrderId = orderChangeModel.SourceOrderId,
OldOrderId = orderModel.FirstOrderId,
S_OrderId = oldOrderModel.OrderId,
S_JoinType = oldOrderModel.JoinType,
S_ClassId = oldOrderModel.ClassId,
......@@ -704,7 +743,6 @@ namespace Edu.Module.EduTask
Dictionary<string, object> guestFileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_ViewModel.TotalHours),guestModel.TotalHours-courseValidHourse },
//{nameof(RB_Order_Guest_ViewModel.GuestState),7 },
};
if (flag)
{
......@@ -774,6 +812,7 @@ namespace Edu.Module.EduTask
}
return flag;
}
#endregion
/// <summary>
......@@ -782,8 +821,7 @@ namespace Edu.Module.EduTask
/// <returns></returns>
public bool CreateContract(RB_Order order, RB_Course course, RB_Education_Contract_ViewModel contractModel, int guestId)
{
bool flag = false;
bool flag = false;
var guestModel = guestRepository.GetEntity(guestId);
var newModel = new RB_Education_Contract()
{
......@@ -863,7 +901,6 @@ namespace Edu.Module.EduTask
return flag;
}
/// <summary>
/// 回归原班上课
/// </summary>
......@@ -873,13 +910,25 @@ namespace Edu.Module.EduTask
bool flag = false;
var oldOrder = orderRepository.GetEntity(oldOrderId);
var order = orderRepository.GetEntity(OrderId);
var guest = guestRepository.GetEntity(GuestId);
var oldGuest = guestRepository.GetEntity(oldGuestId);
var guest = guestRepository.GetEntity(GuestId);
var classList = classRepository.GetClassListRepository(new RB_Class_ViewModel()
{
Q_ClassIds = oldOrder.ClassId + "," + order.ClassId
});
var oldContract = education_ContractRepository.GetList(new RB_Education_Contract_ViewModel()
{
OrderId = oldOrder.OrderId,
GuestId = oldGuest.Id,
}).Where(qitem => qitem.Status == 0 || qitem.Status == 1 || qitem.Status == 2)?.FirstOrDefault();
var newContract = education_ContractRepository.GetList(new RB_Education_Contract_ViewModel()
{
OrderId = order.OrderId,
GuestId = guest.Id,
}).Where(qitem => qitem.Status == 0 || qitem.Status == 1 || qitem.Status == 2)?.FirstOrDefault();
var oldClassModel = classList?.Where(qitem => qitem.ClassId == oldOrder.ClassId)?.FirstOrDefault() ?? new RB_Class_ViewModel();
var newClassModel = classList?.Where(qitem => qitem.ClassId == order.ClassId)?.FirstOrDefault() ?? new RB_Class_ViewModel();
//原业务员
......@@ -889,22 +938,62 @@ namespace Edu.Module.EduTask
//生成收支相抵单据
//剩余课时
var surplus = guest.TotalHours - guest.CompleteHours;
var refundMoney = Math.Round(order.PreferPrice/ guest.TotalHours * surplus, 2);
#region 更新学员课时
//更新老订单学员课时
Dictionary<string, object> oldGuestFileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_Extend.TotalHours),oldGuest.TotalHours+surplus }
};
flag= guestRepository.Update(oldGuestFileds, new WhereHelper(nameof(RB_Order_Guest_Extend.Id), GuestId));
flag= guestRepository.Update(oldGuestFileds, new WhereHelper(nameof(RB_Order_Guest_Extend.Id), oldGuest.Id));
//更新新订单学员课时
Dictionary<string, object> newGuestFileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_Extend.TotalHours),guest.CompleteHours }
{nameof(RB_Order_Guest_Extend.TotalHours),guest.CompleteHours },
{nameof(RB_Order_Guest_Extend.GuestState),7 }
};
//更新新订单学员课时
flag= guestRepository.Update(newGuestFileds, new WhereHelper(nameof(RB_Order_Guest_Extend.Id), oldGuestId));
var refundMoney = Math.Round(order.Unit_Price * surplus, 2);
flag = guestRepository.Update(newGuestFileds, new WhereHelper(nameof(RB_Order_Guest_Extend.Id), guest.Id));
#endregion
#region 更新订单应收
Dictionary<string, object> oldOrderFileds = new Dictionary<string, object>()
{
{nameof(RB_Order.PreferPrice),oldOrder.PreferPrice+refundMoney}
};
//更新原订单应收
flag = orderRepository.Update(oldOrderFileds, new WhereHelper(nameof(RB_Order.OrderId), oldOrder.OrderId));
Dictionary<string, object> newOrderFileds = new Dictionary<string, object>()
{
{nameof(RB_Order.PreferPrice),order.PreferPrice-refundMoney}
};
//更新新订单应收
flag = orderRepository.Update(newOrderFileds, new WhereHelper(nameof(RB_Order.OrderId), order.OrderId));
#endregion
#region 更新合同课时和应收
Dictionary<string, object> oldContractFileds = new Dictionary<string, object>()
{
{nameof(RB_Education_Contract.FirstClassHours),guest.CompleteHours},
{nameof(RB_Education_Contract.FirstCourseFee),order.PreferPrice-refundMoney },
{nameof(RB_Education_Contract.FirstMoney),order.PreferPrice-refundMoney },
{nameof(RB_Education_Contract.Money), order.PreferPrice-refundMoney},
{nameof(RB_Education_Contract.CNYCaps), StringHelper.MoneyToUpper((order.PreferPrice-refundMoney).ToString()) }
};
flag = education_ContractRepository.Update(oldContractFileds, new WhereHelper(nameof(RB_Education_Contract.Id), oldContract.Id));
Dictionary<string, object> newContractFileds = new Dictionary<string, object>()
{
{nameof(RB_Education_Contract.FirstClassHours), oldGuest.TotalHours+surplus},
{nameof(RB_Education_Contract.FirstCourseFee),oldOrder.PreferPrice+refundMoney },
{nameof(RB_Education_Contract.FirstMoney),oldOrder.PreferPrice+refundMoney },
{nameof(RB_Education_Contract.Money), oldOrder.PreferPrice+refundMoney},
{nameof(RB_Education_Contract.CNYCaps), StringHelper.MoneyToUpper((oldOrder.PreferPrice+refundMoney).ToString()) }
};
flag = education_ContractRepository.Update(newContractFileds, new WhereHelper(nameof(RB_Education_Contract.Id), newContract.Id));
#endregion
var outlay = new OrderChangeFinace()
{
ChangeType = 2,
......@@ -938,9 +1027,7 @@ namespace Edu.Module.EduTask
};
//生成收入财务单据
CreateInCome(income, out string msg);
}
return flag;
}
}
......
......@@ -778,7 +778,7 @@ namespace Edu.WebApi.Controllers.Course
List<object> guestList = new List<object>();
foreach (var item in orderGuestList.Where(x => x.GuestState == 1 || x.GuestState == 6 || ((x.GuestState == 5 || x.GuestState == 7) && x.ChangeEffectTime.HasValue && Convert.ToDateTime(Common.ConvertHelper.FormatDate(x.ChangeEffectTime)) >= data.ClassDate)))
{
if (item.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.Normal|| item.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.RenewOrder || (item.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.InsertClass && data.ClassDate >= Convert.ToDateTime(Common.ConvertHelper.FormatDate(item.EffectTime))))
if (item.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.InsertClass && data.ClassDate >= Convert.ToDateTime(Common.ConvertHelper.FormatDate(item.EffectTime)))
{
guestList.Add(new
{
......@@ -796,9 +796,9 @@ namespace Edu.WebApi.Controllers.Course
item.CompleteHours,
item.StartClassHours,
item.JoinType,
JoinTypeName=item.JoinType.ToName(),
JoinTypeName = item.JoinType.ToName(),
item.TargetJoinType,
TargetJoinTypeName=item.TargetJoinType.ToName(),
TargetJoinTypeName = item.TargetJoinType.ToName(),
item.SourceOrderId,
item.TargetOrderId,
item.EffectStatus,
......@@ -807,7 +807,39 @@ namespace Edu.WebApi.Controllers.Course
item.UpOrderId,
IsCheck = (checkLogList != null && checkLogList.Any()) ? checkLogList.Where(x => x.OrderGuestId == item.Id).FirstOrDefault()?.CheckStatus ?? -1 : -1,
StudyNum = (checkLogList != null && checkLogList.Any()) ? checkLogList.Where(x => x.OrderGuestId == item.Id).FirstOrDefault()?.StudyNum ?? 0 : 0,
IsTemp=0,
IsTemp = 0,
});
}
else
{
guestList.Add(new
{
UserIcon = "",
item.Id,
SexStr = item.Sex == 1 ? "男" : "女",
item.GuestName,
item.Age,
CreateTimeStr = Common.ConvertHelper.FormatTime(item.CreateTime),
item.Mobile,
item.OrderId,
item.CourseName,
item.CourseId,
item.TotalHours,
item.CompleteHours,
item.StartClassHours,
item.JoinType,
JoinTypeName = item.JoinType.ToName(),
item.TargetJoinType,
TargetJoinTypeName = item.TargetJoinType.ToName(),
item.SourceOrderId,
item.TargetOrderId,
item.EffectStatus,
item.EffectStatusStr,
EffectTime = Common.ConvertHelper.FormatDate(item.EffectTime),
item.UpOrderId,
IsCheck = (checkLogList != null && checkLogList.Any()) ? checkLogList.Where(x => x.OrderGuestId == item.Id).FirstOrDefault()?.CheckStatus ?? -1 : -1,
StudyNum = (checkLogList != null && checkLogList.Any()) ? checkLogList.Where(x => x.OrderGuestId == item.Id).FirstOrDefault()?.StudyNum ?? 0 : 0,
IsTemp = 0,
});
}
}
......
......@@ -49,9 +49,11 @@ namespace Edu.WebApi.Controllers.EduTask
MoveType = base.ParmJObj.GetInt("MoveType"),
Remarks = base.ParmJObj.GetStringValue("Remarks")
};
if (model.ClassId == 0)
if (model.ClassId <= 0)
{
return ApiResult.Failed("请选择班级");
return ApiResult.ParamIsNull(message: "请选择要调整的班级!");
}
var classModel = classModule.GetClassModule(model.ClassId);
string receiptFile = string.Empty;
......
......@@ -181,5 +181,33 @@ namespace Edu.WebApi.Controllers.EduTask
bool flag = orderChangeModule.SetOrderSplitModule(model, receiptFile, out string message);
return flag ? ApiResult.Success() : ApiResult.Failed(message: message);
}
/// <summary>
/// 订单拆分申请
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult TestUpdateOrderSplit()
{
var Id = base.ParmJObj.GetInt("Id");
var Type = base.ParmJObj.GetInt("Type");
bool flag = orderChangeModule.TestUpdateOrderSplitModule(Id, Type);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 回归原班
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult RegressSourceClass()
{
var OrderId = base.ParmJObj.GetInt("OrderId");
var GuestId = base.ParmJObj.GetInt("GuestId");
var oldOrderId = base.ParmJObj.GetInt("oldOrderId");
var oldGuestId = base.ParmJObj.GetInt("oldGuestId");
bool flag = orderChangeModule.RegressSourceClassModule(OrderId, GuestId, oldOrderId, oldGuestId);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
}
}
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