Commit e43cfeb2 authored by 黄奎's avatar 黄奎

页面修改

parent 4f1e298a
...@@ -343,5 +343,16 @@ namespace Edu.Model.Entity.Course ...@@ -343,5 +343,16 @@ namespace Edu.Model.Entity.Course
/// 状态(0-草稿,1-提交审核,2-审核通过,3-驳回,4-取消) /// 状态(0-草稿,1-提交审核,2-审核通过,3-驳回,4-取消)
/// </summary> /// </summary>
public int Status { get; set; } public int Status { get; set; }
/// <summary>
/// 系统查询使用(1-正常,0-不查询)
/// </summary>
public int IsSystemUse { get; set; }
/// <summary>
/// 原合同编号
/// </summary>
public int SourceContractId { get; set; }
} }
} }
using Edu.Common.Enum.Sale;
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.Course
{
/// <summary>
/// 订单分拆关联信息实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Order_SplitDetails
{
/// <summary>
/// 主键
/// </summary>
public int Id { get; set; }
/// <summary>
/// 销售第一报名的订单编号
/// </summary>
public int OldOrderId { get; set; }
/// <summary>
/// 订单编号
/// </summary>
public int S_OrderId { get; set; }
/// <summary>
/// 订单报入类型
/// </summary>
public OrderJoinTypeEnum S_JoinType { get; set; }
/// <summary>
/// 订单班级编号
/// </summary>
public int S_ClassId { get; set; }
/// <summary>
/// 目标订单编号
/// </summary>
public int T_OrderId { get; set; }
/// <summary>
/// 目标订单报入类型
/// </summary>
public OrderJoinTypeEnum T_JoinType { get; set; }
/// <summary>
/// 目标订单班级编号
/// </summary>
public int T_ClassId { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
}
}
\ No newline at end of file
using Edu.Model.Entity.Course;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.Course
{
/// <summary>
/// 订单分拆关联信息视图实体类
/// </summary>
public class RB_Order_SplitDetails_ViewModel : RB_Order_SplitDetails
{
/// <summary>
/// 原订单编号【查询使用,多个逗号分隔】
/// </summary>
public string Q_OldOrderIds { get; set; }
/// <summary>
/// 原订单班级名称
/// </summary>
public string S_ClassName { get; set; }
/// <summary>
/// 新订单班级名称
/// </summary>
public string T_ClassName { get; set; }
}
}
...@@ -206,6 +206,11 @@ namespace Edu.Model.ViewModel.Course ...@@ -206,6 +206,11 @@ namespace Edu.Model.ViewModel.Course
/// </summary> /// </summary>
public int OldGuestId { get; set; } public int OldGuestId { get; set; }
/// <summary>
/// 新订单学员的新总课时
/// </summary>
public int NewGuestTotalClassHours { get; set; }
/// <summary> /// <summary>
/// 学员编号【转班生成财务单据使用】 /// 学员编号【转班生成财务单据使用】
/// </summary> /// </summary>
......
...@@ -39,11 +39,6 @@ namespace Edu.Module.Course ...@@ -39,11 +39,6 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
private readonly RB_GroupRepository groupRepository = new RB_GroupRepository(); private readonly RB_GroupRepository groupRepository = new RB_GroupRepository();
/// <summary>
/// 校区仓储层对象
/// </summary>
private readonly RB_SchoolRepository schoolRepository = new RB_SchoolRepository();
/// <summary> /// <summary>
/// 订单仓储层对象 /// 订单仓储层对象
/// </summary> /// </summary>
...@@ -239,7 +234,9 @@ namespace Edu.Module.Course ...@@ -239,7 +234,9 @@ namespace Edu.Module.Course
} }
model.School_Id = classModel?.School_Id ?? 0; model.School_Id = classModel?.School_Id ?? 0;
//生成合同编码 //生成合同编码
model.ContractNo = CreateContractNumModule(model.Group_Id, model.School_Id); model.ContractNo = education_ContractRepository.CreateContractNumRepository(model.Group_Id, model.School_Id);
model.IsSystemUse = 1;
model.SourceContractId = 0;
var newId = education_ContractRepository.Insert(model); var newId = education_ContractRepository.Insert(model);
model.Id = newId; model.Id = newId;
flag = newId > 0; flag = newId > 0;
...@@ -247,23 +244,7 @@ namespace Edu.Module.Course ...@@ -247,23 +244,7 @@ namespace Edu.Module.Course
return flag; return flag;
} }
/// <summary>
/// 生成合同编号
/// </summary>
/// <param name="GroupId"></param>
/// <returns></returns>
public string CreateContractNumModule(int GroupId, int schoolId)
{
var schoolModel = schoolRepository.GetEntity(schoolId);
string newContractNum = Common.Config.ContractDefaultTitle;
if (schoolModel != null && schoolModel.SId > 0)
{
newContractNum = schoolModel?.ContractTitle ?? Common.Config.ContractDefaultTitle;
}
var totalCount = education_ContractRepository.GetContractCount(new RB_Education_Contract_ViewModel() { Group_Id = GroupId });
string num = (totalCount + 1 + 18).ToString("D4");
return newContractNum + num;
}
/// <summary> /// <summary>
/// 获取详情 /// 获取详情
......
...@@ -164,6 +164,11 @@ namespace Edu.Module.Course ...@@ -164,6 +164,11 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
private readonly RB_Visitor_ReserveRepository visitor_ReserveRepository = new RB_Visitor_ReserveRepository(); private readonly RB_Visitor_ReserveRepository visitor_ReserveRepository = new RB_Visitor_ReserveRepository();
/// <summary>
/// 订单拆分仓储层对象
/// </summary>
private readonly RB_Order_SplitDetailsRepository splitDetailsRepository = new RB_Order_SplitDetailsRepository();
#region 日语培训 #region 日语培训
/// <summary> /// <summary>
...@@ -728,7 +733,7 @@ namespace Edu.Module.Course ...@@ -728,7 +733,7 @@ namespace Edu.Module.Course
} }
#endregion #endregion
#region 续课订单和转班订单 添加学员名单 #region 续课订单和转班订单和分拆订单 添加学员名单
if (flag && demodel.OldGuestId > 0) if (flag && demodel.OldGuestId > 0)
{ {
var oldGuestModel = order_GuestRepository.GetEntity(demodel.OldGuestId); var oldGuestModel = order_GuestRepository.GetEntity(demodel.OldGuestId);
...@@ -779,6 +784,11 @@ namespace Edu.Module.Course ...@@ -779,6 +784,11 @@ namespace Edu.Module.Course
//原订单学员的剩余课时 //原订单学员的剩余课时
guestModel.TotalHours = oldGuestModel.TotalHours - oldGuestModel.CompleteHours; guestModel.TotalHours = oldGuestModel.TotalHours - oldGuestModel.CompleteHours;
} }
else if (demodel.JoinType == OrderJoinTypeEnum.SplitOrder)
{
//新订单新课程的【根据时间计算的有效课时】
guestModel.TotalHours = demodel.NewGuestTotalClassHours;
}
SetOrderGuestInfo(guestModel, out string Nmessage); SetOrderGuestInfo(guestModel, out string Nmessage);
demodel.NewGuestId = guestModel.Id; demodel.NewGuestId = guestModel.Id;
} }
......
...@@ -5,7 +5,7 @@ using Edu.Common.Enum.Course; ...@@ -5,7 +5,7 @@ using Edu.Common.Enum.Course;
using Edu.Common.Enum.EduTask; using Edu.Common.Enum.EduTask;
using Edu.Common.Enum.Finance; using Edu.Common.Enum.Finance;
using Edu.Common.Plugin; using Edu.Common.Plugin;
using Edu.Model.CacheModel; using Edu.Model.Entity.Course;
using Edu.Model.Entity.EduTask; using Edu.Model.Entity.EduTask;
using Edu.Model.ViewModel.Course; using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.EduTask; using Edu.Model.ViewModel.EduTask;
...@@ -13,12 +13,10 @@ using Edu.Module.Course; ...@@ -13,12 +13,10 @@ using Edu.Module.Course;
using Edu.Repository.Course; using Edu.Repository.Course;
using Edu.Repository.EduTask; using Edu.Repository.EduTask;
using Edu.Repository.Log; using Edu.Repository.Log;
using Edu.Repository.User;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text;
using VT.FW.DB; using VT.FW.DB;
namespace Edu.Module.EduTask namespace Edu.Module.EduTask
...@@ -78,6 +76,16 @@ namespace Edu.Module.EduTask ...@@ -78,6 +76,16 @@ namespace Edu.Module.EduTask
/// </summary> /// </summary>
private readonly RB_Class_PlanRepository class_PlanRepository = new RB_Class_PlanRepository(); private readonly RB_Class_PlanRepository class_PlanRepository = new RB_Class_PlanRepository();
/// <summary>
/// 合同仓储层对象
/// </summary>
private readonly RB_Education_ContractRepository education_ContractRepository = new RB_Education_ContractRepository();
/// <summary>
/// 订单拆分仓储层对象
/// </summary>
private readonly RB_Order_SplitDetailsRepository splitDetailsRepository = new RB_Order_SplitDetailsRepository();
/// <summary> /// <summary>
/// 新增订单转班 /// 新增订单转班
/// </summary> /// </summary>
...@@ -131,7 +139,7 @@ namespace Edu.Module.EduTask ...@@ -131,7 +139,7 @@ namespace Edu.Module.EduTask
/// <returns></returns> /// <returns></returns>
public GuestFinishMinute_ViewModel GetGuestFinishMinutesModule(string guestIds) public GuestFinishMinute_ViewModel GetGuestFinishMinutesModule(string guestIds)
{ {
var model= classCheckRepository.GetGuestFinishMinutesRepository(guestIds)?.FirstOrDefault(); var model = classCheckRepository.GetGuestFinishMinutesRepository(guestIds)?.FirstOrDefault();
if (model == null) if (model == null)
{ {
model = new GuestFinishMinute_ViewModel(); model = new GuestFinishMinute_ViewModel();
...@@ -144,7 +152,7 @@ namespace Edu.Module.EduTask ...@@ -144,7 +152,7 @@ namespace Edu.Module.EduTask
/// </summary> /// </summary>
/// <param name="query"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
public decimal GetClassPlanTimeHoursModule(int ClassId,string StartTime,string EndTime) public decimal GetClassPlanTimeHoursModule(int ClassId, string StartTime, string EndTime)
{ {
var list = class_PlanRepository.GetClassPlanListExtRepository(new RB_Class_Plan_ViewModel() var list = class_PlanRepository.GetClassPlanListExtRepository(new RB_Class_Plan_ViewModel()
{ {
...@@ -164,7 +172,7 @@ namespace Edu.Module.EduTask ...@@ -164,7 +172,7 @@ namespace Edu.Module.EduTask
{ {
ReceiptType = (int)ReceiptTypeEnum.OrderTransClass, ReceiptType = (int)ReceiptTypeEnum.OrderTransClass,
VerifyStatus = (int)EduTaskRrocessStatus.AuditThrough, VerifyStatus = (int)EduTaskRrocessStatus.AuditThrough,
QEffectiveDate=Common.ConvertHelper.FormatDate(DateTime.Now) QEffectiveDate = Common.ConvertHelper.FormatDate(DateTime.Now)
}); });
if (list != null && list.Count > 0) if (list != null && list.Count > 0)
{ {
...@@ -196,7 +204,8 @@ namespace Edu.Module.EduTask ...@@ -196,7 +204,8 @@ namespace Edu.Module.EduTask
return false; return false;
} }
var oldOrderModel = orderRepository.GetEntity(orderChangeModel.SourceOrderId); var oldOrderModel = orderRepository.GetEntity(orderChangeModel.SourceOrderId);
var classList= classRepository.GetClassListRepository(new RB_Class_ViewModel() { var classList = classRepository.GetClassListRepository(new RB_Class_ViewModel()
{
Q_ClassIds = orderChangeModel.NewClassId + "," + oldOrderModel.ClassId Q_ClassIds = orderChangeModel.NewClassId + "," + oldOrderModel.ClassId
}); });
var oldClassModel = classList?.Where(qitem => qitem.ClassId == oldOrderModel.ClassId)?.FirstOrDefault() ?? new RB_Class_ViewModel(); var oldClassModel = classList?.Where(qitem => qitem.ClassId == oldOrderModel.ClassId)?.FirstOrDefault() ?? new RB_Class_ViewModel();
...@@ -209,13 +218,13 @@ namespace Edu.Module.EduTask ...@@ -209,13 +218,13 @@ namespace Edu.Module.EduTask
//计算课时单价 //计算课时单价
//老订单应收 //老订单应收
//单个人员的课时单价 //单个人员的课时单价
var unitPrice= (oldOrderModel.Income + oldOrderModel.PlatformTax) / oldOrderModel.GuestNum / guestModel.TotalHours; var unitPrice = (oldOrderModel.Income + oldOrderModel.PlatformTax) / oldOrderModel.GuestNum / guestModel.TotalHours;
//单人已完成应收 //单人已完成应收
var singleFinishPrice = Math.Round(guestClassHours.FinishClassHours * unitPrice, 2); var singleFinishPrice = Math.Round(guestClassHours.FinishClassHours * unitPrice, 2);
//单人应收 //单人应收
var singlePreferPrice = Math.Round(guestModel.TotalHours * unitPrice, 2); var singlePreferPrice = Math.Round(guestModel.TotalHours * unitPrice, 2);
//原订单应收=原订单应收-单人应收+单人完成 //原订单应收=原订单应收-单人应收+单人完成
decimal oldPreferPrice = oldOrderModel.PreferPrice- singlePreferPrice+ singleFinishPrice; decimal oldPreferPrice = oldOrderModel.PreferPrice - singlePreferPrice + singleFinishPrice;
//新订单应收和退款一致 //新订单应收和退款一致
decimal newPreferPrice = singlePreferPrice - singleFinishPrice; decimal newPreferPrice = singlePreferPrice - singleFinishPrice;
#region 生成新订单 #region 生成新订单
...@@ -244,8 +253,8 @@ namespace Edu.Module.EduTask ...@@ -244,8 +253,8 @@ namespace Edu.Module.EduTask
UpOrderId = 0, UpOrderId = 0,
VisitorReserveId = 0, VisitorReserveId = 0,
JoinType = Common.Enum.Sale.OrderJoinTypeEnum.TransOrder, JoinType = Common.Enum.Sale.OrderJoinTypeEnum.TransOrder,
TargetJoinType= Common.Enum.Sale.OrderJoinTypeEnum.Normal, TargetJoinType = Common.Enum.Sale.OrderJoinTypeEnum.Normal,
EffectTime= orderChangeModel.EffectiveDate, EffectTime = orderChangeModel.EffectiveDate,
}; };
orderModel.SourceOrderId = orderChangeModel.SourceOrderId; orderModel.SourceOrderId = orderChangeModel.SourceOrderId;
orderModel.Group_Id = userInfo.Group_Id; orderModel.Group_Id = userInfo.Group_Id;
...@@ -287,23 +296,35 @@ namespace Edu.Module.EduTask ...@@ -287,23 +296,35 @@ namespace Edu.Module.EduTask
} }
#endregion #endregion
#region 新增老订单合同和新的转班合同
oldOrderModel.PreferPrice = oldPreferPrice;
var oldContract =education_ContractRepository.GetList(new RB_Education_Contract_ViewModel()
{
OrderId = orderChangeModel.SourceOrderId,
GuestId = orderChangeModel.OrderGuestId,
}).Where(qitem => qitem.Status == 0 || qitem.Status == 1 || qitem.Status == 2)?.FirstOrDefault();
//创建老订单合同
CreateContract(oldOrderModel, newCourseModel, oldContract, orderChangeModel.OrderGuestId);
//创建新订单合同
CreateContract(orderModel, newCourseModel, oldContract, orderModel.NewGuestId);
#endregion
#region 生成财务单据 #region 生成财务单据
if (flag) if (flag)
{ {
var changeModel = new OrderChangeFinace() var changeModel = new OrderChangeFinace()
{ {
ChangeType=1, ChangeType = 1,
InCome= newPreferPrice, InCome = newPreferPrice,
GuestId=guestModel.Id, GuestId = guestModel.Id,
GuestName=guestModel.GuestName, GuestName = guestModel.GuestName,
UserInfo=userInfo, UserInfo = userInfo,
ClassId=oldOrderModel.ClassId, ClassId = oldOrderModel.ClassId,
ClassName=oldClassModel.ClassName, ClassName = oldClassModel.ClassName,
Class_School_Id=oldClassModel.School_Id, Class_School_Id = oldClassModel.School_Id,
SName=oldClassModel.SchoolName, SName = oldClassModel.SchoolName,
OrderId=oldOrderModel.OrderId, OrderId = oldOrderModel.OrderId,
}; };
var RelevanceFrId = CreateExpenditure(changeModel, out string msg1); var RelevanceFrId = CreateExpenditure(changeModel, out string msg1);
var changeModel2 = new OrderChangeFinace() var changeModel2 = new OrderChangeFinace()
...@@ -314,9 +335,9 @@ namespace Edu.Module.EduTask ...@@ -314,9 +335,9 @@ namespace Edu.Module.EduTask
GuestName = guestModel.GuestName, GuestName = guestModel.GuestName,
UserInfo = userInfo, UserInfo = userInfo,
ClassId = orderModel.ClassId, ClassId = orderModel.ClassId,
ClassName= newClassModel.ClassName, ClassName = newClassModel.ClassName,
Class_School_Id=newClassModel.School_Id, Class_School_Id = newClassModel.School_Id,
SName=newClassModel.SchoolName, SName = newClassModel.SchoolName,
OrderId = orderModel.OrderId, OrderId = orderModel.OrderId,
ReFinanceId = RelevanceFrId ReFinanceId = RelevanceFrId
}; };
...@@ -357,7 +378,7 @@ namespace Edu.Module.EduTask ...@@ -357,7 +378,7 @@ namespace Edu.Module.EduTask
Remark = "学员【"+change.GuestName+"】收入" Remark = "学员【"+change.GuestName+"】收入"
} }
}; };
string Remark = "【" + (change.ClassName ?? "") + "】下,订单" + change.OrderId + " 客人"+(change.ChangeType==1? "转班" : "分拆"); string Remark = "【" + (change.ClassName ?? "") + "】下,订单" + change.OrderId + " 客人" + (change.ChangeType == 1 ? "转班" : "分拆");
var financeObj = new var financeObj = new
{ {
BType = 1, BType = 1,
...@@ -365,7 +386,7 @@ namespace Edu.Module.EduTask ...@@ -365,7 +386,7 @@ namespace Edu.Module.EduTask
IsPublic = 7, IsPublic = 7,
ClientType = 3659, ClientType = 3659,
CurrencyId = 1, CurrencyId = 1,
GuestId=change.GuestId, change.GuestId,
WBMoney = change.InCome, WBMoney = change.InCome,
PayDate = DateTime.Now.ToString("yyyy-MM-dd"), PayDate = DateTime.Now.ToString("yyyy-MM-dd"),
TemplateId = 186, TemplateId = 186,
...@@ -377,7 +398,7 @@ namespace Edu.Module.EduTask ...@@ -377,7 +398,7 @@ namespace Edu.Module.EduTask
CallBackReFrId = change.ReFinanceId, CallBackReFrId = change.ReFinanceId,
Remark, Remark,
detailList, detailList,
CreateBy =change.UserInfo.Id, CreateBy = change.UserInfo.Id,
RB_Branch_Id = change.Class_School_Id, RB_Branch_Id = change.Class_School_Id,
RB_Depart_Id = change.UserInfo.DeptId, RB_Depart_Id = change.UserInfo.DeptId,
RB_Group_Id = change.UserInfo.Group_Id, RB_Group_Id = change.UserInfo.Group_Id,
...@@ -386,7 +407,7 @@ namespace Edu.Module.EduTask ...@@ -386,7 +407,7 @@ namespace Edu.Module.EduTask
RB_BranchName = change?.SName ?? "", RB_BranchName = change?.SName ?? "",
RB_GroupName = change.UserInfo.GroupName, RB_GroupName = change.UserInfo.GroupName,
FinanceType = 2, FinanceType = 2,
RemitterName =change.ChangeType==1? "转班":"分拆", RemitterName = change.ChangeType == 1 ? "转班" : "分拆",
TradeDate = Common.ConvertHelper.FormatDate(DateTime.Now), TradeDate = Common.ConvertHelper.FormatDate(DateTime.Now),
AccountNumber = Common.ConvertHelper.FormatDate(DateTime.Now), AccountNumber = Common.ConvertHelper.FormatDate(DateTime.Now),
}; };
...@@ -410,7 +431,7 @@ namespace Edu.Module.EduTask ...@@ -410,7 +431,7 @@ namespace Edu.Module.EduTask
CreateBy = change.UserInfo.Id, CreateBy = change.UserInfo.Id,
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
Group_Id = change.UserInfo.Group_Id, Group_Id = change.UserInfo.Group_Id,
LogContent = "生成学员"+(change.ChangeType == 1 ? "转班" : "分拆") +"财务单据【" + change.OrderId + "】", LogContent = "生成学员" + (change.ChangeType == 1 ? "转班" : "分拆") + "财务单据【" + change.OrderId + "】",
School_Id = change.UserInfo.School_Id, School_Id = change.UserInfo.School_Id,
SourceId = 0 SourceId = 0
}); });
...@@ -431,7 +452,7 @@ namespace Edu.Module.EduTask ...@@ -431,7 +452,7 @@ namespace Edu.Module.EduTask
/// <param name="change"></param> /// <param name="change"></param>
/// <param name="msg"></param> /// <param name="msg"></param>
/// <returns></returns> /// <returns></returns>
public int CreateExpenditure(OrderChangeFinace change,out string msg) public int CreateExpenditure(OrderChangeFinace change, out string msg)
{ {
msg = ""; msg = "";
#region 新增财务单据 #region 新增财务单据
...@@ -453,17 +474,17 @@ namespace Edu.Module.EduTask ...@@ -453,17 +474,17 @@ namespace Edu.Module.EduTask
ClientType = 10, ClientType = 10,
ClientID = 3659, ClientID = 3659,
CurrencyId = 1, CurrencyId = 1,
GuestId= change.GuestId, change.GuestId,
WBMoney = change.InCome, WBMoney = change.InCome,
PayDate = DateTime.Now.ToString("yyyy-MM-dd"), PayDate = DateTime.Now.ToString("yyyy-MM-dd"),
TemplateId = 185, TemplateId = 185,
OrderSource = 17, OrderSource = 17,
OrderID =change.OrderId, OrderID = change.OrderId,
TCIDList = new List<int>() { change.ClassId }, TCIDList = new List<int>() { change.ClassId },
OtherType = 0, OtherType = 0,
Remark, Remark,
detailList, detailList,
CreateBy =change.UserInfo.Id, CreateBy = change.UserInfo.Id,
RB_Branch_Id = change.Class_School_Id, RB_Branch_Id = change.Class_School_Id,
RB_Depart_Id = change.UserInfo.DeptId, RB_Depart_Id = change.UserInfo.DeptId,
RB_Group_Id = change.UserInfo.Group_Id, RB_Group_Id = change.UserInfo.Group_Id,
...@@ -492,7 +513,7 @@ namespace Edu.Module.EduTask ...@@ -492,7 +513,7 @@ namespace Edu.Module.EduTask
CreateBy = change.UserInfo.Id, CreateBy = change.UserInfo.Id,
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
Group_Id = change.UserInfo.Group_Id, Group_Id = change.UserInfo.Group_Id,
LogContent = "生成学员"+(change.ChangeType==1? "转班" : "分拆")+"财务单据【" + change.OrderId + "】", LogContent = "生成学员" + (change.ChangeType == 1 ? "转班" : "分拆") + "财务单据【" + change.OrderId + "】",
School_Id = change.UserInfo.School_Id, School_Id = change.UserInfo.School_Id,
SourceId = 0 SourceId = 0
}); });
...@@ -581,21 +602,29 @@ namespace Edu.Module.EduTask ...@@ -581,21 +602,29 @@ namespace Edu.Module.EduTask
{ {
Q_ClassIds = orderChangeModel.NewClassId + "," + oldOrderModel.ClassId Q_ClassIds = orderChangeModel.NewClassId + "," + oldOrderModel.ClassId
}); });
//课程列表
var courseList = courseRepository.GetCourseListRepository(new RB_Course_ViewModel()
{
QCourseIds = orderChangeModel.NewCourseId + "," + oldOrderModel.CourseId
});
var oldClassModel = classList?.Where(qitem => qitem.ClassId == oldOrderModel.ClassId)?.FirstOrDefault() ?? new RB_Class_ViewModel(); 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 newClassModel = classList?.Where(qitem => qitem.ClassId == orderChangeModel.NewClassId)?.FirstOrDefault() ?? new RB_Class_ViewModel();
//班级有效课时 //班级有效课时
var courseValidHourse = planList?.Sum(qitem => qitem.TimeHour)??0; var courseValidHourse = planList?.Sum(qitem => qitem.TimeHour) ?? 0;
//课程信息 //新课程信息
var newCourseModel = courseRepository.GetEntity(orderChangeModel.NewCourseId); var newCourseModel = courseList?.Where(qitem => qitem.CourseId == orderChangeModel.NewCourseId)?.FirstOrDefault() ?? new RB_Course_ViewModel();
//原课程信息
var oldCourseModel = courseList.Where(qitem => qitem.CourseId == oldOrderModel.CourseId)?.FirstOrDefault() ?? new RB_Course_ViewModel();
//新班级课程的应收 //新班级课程的应收
var newPreferPrice = Math.Round(newCourseModel.SellPrice / newCourseModel.ClassHours * courseValidHourse,2); var newPreferPrice = Math.Round(newCourseModel.SellPrice / newCourseModel.ClassHours * courseValidHourse, 2);
//原业务员 //原业务员
var userInfo = UserReidsCache.GetUserLoginInfo(oldOrderModel.EnterID); var userInfo = UserReidsCache.GetUserLoginInfo(oldOrderModel.EnterID);
//原学员信息 //原学员信息
var guestModel = guestRepository.GetEntity(orderChangeModel.OrderGuestId); var guestModel = guestRepository.GetEntity(orderChangeModel.OrderGuestId);
//原订单应收=原订单应收-新班级课程的应收 //原订单应收=原订单应收-新班级课程的应收
decimal oldPreferPrice = oldOrderModel.PreferPrice - newPreferPrice ; decimal oldPreferPrice = oldOrderModel.PreferPrice - newPreferPrice;
#region 生成新订单 #region 生成新订单
var orderModel = new RB_Order_ViewModel() var orderModel = new RB_Order_ViewModel()
...@@ -639,11 +668,26 @@ namespace Edu.Module.EduTask ...@@ -639,11 +668,26 @@ namespace Edu.Module.EduTask
orderModel.UpdateBy = userInfo.Id; orderModel.UpdateBy = userInfo.Id;
orderModel.UpdateTime = DateTime.Now; orderModel.UpdateTime = DateTime.Now;
orderModel.OldGuestId = orderChangeModel.OrderGuestId; orderModel.OldGuestId = orderChangeModel.OrderGuestId;
orderModel.NewGuestTotalClassHours = Convert.ToInt32(courseValidHourse);
flag = orderModule.SetClassOrderCommonModule(orderModel, userInfo, false, out string message); flag = orderModule.SetClassOrderCommonModule(orderModel, userInfo, false, out string message);
#endregion #endregion
if (flag) if (flag)
{ {
//添加关联记录
splitDetailsRepository.Insert(new RB_Order_SplitDetails()
{
OldOrderId = orderChangeModel.SourceOrderId,
S_OrderId = oldOrderModel.OrderId,
S_JoinType = oldOrderModel.JoinType,
S_ClassId = oldOrderModel.ClassId,
T_OrderId = orderModel.OrderId,
T_JoinType = orderModel.JoinType,
T_ClassId = orderModel.ClassId,
CreateBy = orderModel.CreateBy,
CreateTime = DateTime.Now
});
#region 修改老订单 【目标订单和应收】 #region 修改老订单 【目标订单和应收】
Dictionary<string, object> fileds = new Dictionary<string, object>() Dictionary<string, object> fileds = new Dictionary<string, object>()
{ {
...@@ -666,6 +710,18 @@ namespace Edu.Module.EduTask ...@@ -666,6 +710,18 @@ namespace Edu.Module.EduTask
} }
#endregion #endregion
#region 创建合同
var oldContract = education_ContractRepository.GetList(new RB_Education_Contract_ViewModel()
{
OrderId = orderChangeModel.SourceOrderId,
GuestId = orderChangeModel.OrderGuestId,
}).Where(qitem => qitem.Status == 0 || qitem.Status == 1 || qitem.Status == 2)?.FirstOrDefault();
//生成老订单合同
CreateContract(oldOrderModel, oldCourseModel, oldContract, orderChangeModel.OrderGuestId);
//生成新订单合同
CreateContract(orderModel, oldCourseModel, oldContract, orderModel.NewGuestId);
#endregion
#region 生成财务单据 #region 生成财务单据
if (flag) if (flag)
...@@ -717,5 +773,106 @@ namespace Edu.Module.EduTask ...@@ -717,5 +773,106 @@ namespace Edu.Module.EduTask
return flag; return flag;
} }
#endregion #endregion
/// <summary>
/// 生成合同
/// </summary>
/// <returns></returns>
public bool CreateContract(RB_Order order, RB_Course course, RB_Education_Contract_ViewModel contractModel, int guestId)
{
bool flag = false;
var guestModel = guestRepository.GetEntity(guestId);
var newModel = new RB_Education_Contract()
{
Id = 0,
CType = ContractTypeEnum.Train,
OrderId = order.OrderId,
GuestId = guestId,
ContractNo = education_ContractRepository.CreateContractNumRepository(order.Group_Id, guestModel.School_Id),
StudentName = guestModel.GuestName,
StuBirth = contractModel.StuBirth,
StuSex = contractModel.StuSex,
StuAddress = contractModel.StuAddress,
StuTel = contractModel.StuTel,
StuEmail = contractModel.StuEmail,
ParentName = contractModel.ParentName,
ParentRelation = contractModel.ParentRelation,
ParentTel = contractModel.ParentTel,
ParentEmail = contractModel.ParentEmail,
UrgentName = contractModel.UrgentName,
UrgentRelation = contractModel.UrgentRelation,
UrgentTel = contractModel.UrgentTel,
GuardianIDCard = contractModel.GuardianIDCard,
CourseName = course.CourseName,
SchoolName = contractModel.SchoolName,
SchoolPrincipal = contractModel.SchoolPrincipal,
StartLevel = contractModel.StartLevel,
CourseConsultant = contractModel.CourseConsultant,
Payee = contractModel.Payee,
FirstClassHours = guestModel.TotalHours,
FirstCourseFee = order.PreferPrice,
FirstBookFee = 0,
FirstClassFee = 0,
FirstDiscountMoney = 0,
FirstMoney = order.PreferPrice,
FirstPayDate = contractModel.FirstPayDate,
SecondClassHours = 0,
SecondCourseFee = 0,
SecondBookFee = 0,
SecondClassFee = 0,
SecondDiscountMoney = 0,
SecondMoney = 0,
SecondPayDate = contractModel.SecondPayDate,
ThirdClassHours = 0,
ThirdCourseFee = 0,
ThirdBookFee = 0,
ThirdClassFee = 0,
ThirdDiscountMoney = 0,
ThirdMoney = 0,
ThirdPayDate = contractModel.ThirdPayDate,
CNYCaps = StringHelper.MoneyToUpper(order.PreferPrice.ToString()),
Money = order.PreferPrice,
Exam = contractModel.Exam,
IsSupplement = contractModel.IsSupplement,
Sign = contractModel.Sign,
SignDate = contractModel.SignDate,
GuardianSign = contractModel.GuardianSign,
AuditDate = contractModel.AuditDate,
AuditEmpId = contractModel.AuditEmpId,
IsCompanySeal = contractModel.IsCompanySeal,
SealDate = contractModel.SealDate,
Group_Id = contractModel.Group_Id,
School_Id = contractModel.School_Id,
CreateBy = contractModel.CreateBy,
CreateTime = DateTime.Now,
UpdateBy = contractModel.UpdateBy,
UpdateTime = contractModel.UpdateTime,
Status = contractModel.Status,
IsSystemUse = 1,
SourceContractId = contractModel.Id
};
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Education_Contract.IsSystemUse),0 }
};
flag = education_ContractRepository.Update(fileds, new WhereHelper(nameof(RB_Education_Contract.Id), contractModel.Id));
flag = education_ContractRepository.Insert(newModel) > 0;
return flag;
}
/// <summary>
/// 回归原班上课
/// </summary>
/// <returns></returns>
public bool RegressSourceClassModule(int OrderId, int GuestId)
{
bool flag = false;
var order = orderRepository.GetEntity(OrderId);
var guest = guestRepository.GetEntity(GuestId);
return flag;
}
} }
} }
...@@ -26,10 +26,14 @@ SELECT A.*,IFNULL(B.CateName,'') AS CateName ...@@ -26,10 +26,14 @@ SELECT A.*,IFNULL(B.CateName,'') AS CateName
FROM RB_Course AS A LEFT JOIN rb_course_category AS B ON A.CateId=B.CateId FROM RB_Course AS A LEFT JOIN rb_course_category AS B ON A.CateId=B.CateId
WHERE 1=1 WHERE 1=1
"); ");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_ViewModel.Group_Id), query.Group_Id);
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_ViewModel.Status), (int)DateStateEnum.Normal); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_ViewModel.Status), (int)DateStateEnum.Normal);
if (query != null) if (query != null)
{ {
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_ViewModel.Group_Id), query.Group_Id);
}
if (!string.IsNullOrWhiteSpace(query.CourseName)) if (!string.IsNullOrWhiteSpace(query.CourseName))
{ {
builder.AppendFormat(" AND A.{0} LIKE @CourseName ", nameof(RB_Course_ViewModel.CourseName)); builder.AppendFormat(" AND A.{0} LIKE @CourseName ", nameof(RB_Course_ViewModel.CourseName));
...@@ -39,7 +43,6 @@ WHERE 1=1 ...@@ -39,7 +43,6 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_ViewModel.CateId), query.CateId); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_ViewModel.CateId), query.CateId);
} }
if (!string.IsNullOrEmpty(query.QCourseIds)) if (!string.IsNullOrEmpty(query.QCourseIds))
{ {
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Course_ViewModel.CourseId), query.QCourseIds); builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Course_ViewModel.CourseId), query.QCourseIds);
......
using Edu.Common.Enum; using Edu.Common.Enum;
using Edu.Model.Entity.Course; using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course; using Edu.Model.ViewModel.Course;
using Edu.Repository.User;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
...@@ -14,6 +15,29 @@ namespace Edu.Repository.Course ...@@ -14,6 +15,29 @@ namespace Edu.Repository.Course
/// </summary> /// </summary>
public class RB_Education_ContractRepository : BaseRepository<RB_Education_Contract> public class RB_Education_ContractRepository : BaseRepository<RB_Education_Contract>
{ {
/// <summary>
/// 校区仓储层对象
/// </summary>
private readonly RB_SchoolRepository schoolRepository = new RB_SchoolRepository();
/// <summary>
/// 生成合同编号
/// </summary>
/// <param name="GroupId"></param>
/// <returns></returns>
public string CreateContractNumRepository(int GroupId, int schoolId)
{
var schoolModel = schoolRepository.GetEntity(schoolId);
string newContractNum = Common.Config.ContractDefaultTitle;
if (schoolModel != null && schoolModel.SId > 0)
{
newContractNum = schoolModel?.ContractTitle ?? Common.Config.ContractDefaultTitle;
}
var totalCount = GetContractCount(new RB_Education_Contract_ViewModel() { Group_Id = GroupId });
string num = (totalCount + 1 + 18).ToString("D4");
return newContractNum + num;
}
/// <summary> /// <summary>
/// 获取分页列表 /// 获取分页列表
/// </summary> /// </summary>
...@@ -89,7 +113,7 @@ namespace Edu.Repository.Course ...@@ -89,7 +113,7 @@ namespace Edu.Repository.Course
public List<RB_Education_Contract_ViewModel> GetList(RB_Education_Contract_ViewModel demodel) public List<RB_Education_Contract_ViewModel> GetList(RB_Education_Contract_ViewModel demodel)
{ {
DynamicParameters parameters = new DynamicParameters(); DynamicParameters parameters = new DynamicParameters();
string where = $@" 1=1"; string where = $@" 1=1 AND IsSystemUse=1 ";
if (demodel.Group_Id > 0) if (demodel.Group_Id > 0)
{ {
where += $@" AND {nameof(RB_Education_Contract_ViewModel.Group_Id)} ={demodel.Group_Id}"; where += $@" AND {nameof(RB_Education_Contract_ViewModel.Group_Id)} ={demodel.Group_Id}";
...@@ -106,6 +130,10 @@ namespace Edu.Repository.Course ...@@ -106,6 +130,10 @@ namespace Edu.Repository.Course
{ {
where += $@" AND {nameof(RB_Education_Contract_ViewModel.OrderId)} IN({demodel.OrderIds})"; where += $@" AND {nameof(RB_Education_Contract_ViewModel.OrderId)} IN({demodel.OrderIds})";
} }
if (demodel.GuestId > 0)
{
where += $@" AND {nameof(RB_Education_Contract_ViewModel.GuestId)} IN({demodel.GuestId})";
}
if (!string.IsNullOrEmpty(demodel.GuestIds)) if (!string.IsNullOrEmpty(demodel.GuestIds))
{ {
where += $@" AND {nameof(RB_Education_Contract_ViewModel.GuestId)} IN({demodel.GuestIds})"; where += $@" AND {nameof(RB_Education_Contract_ViewModel.GuestId)} IN({demodel.GuestIds})";
......
...@@ -109,7 +109,7 @@ namespace Edu.Repository.Course ...@@ -109,7 +109,7 @@ namespace Edu.Repository.Course
} }
if (demodel.QEffectStatus == 1) if (demodel.QEffectStatus == 1)
{ {
where += $@" AND (B.JoinType=1 OR (B.JoinType=2 AND B.EffectStatus IN(1) )) "; where += $@" AND (B.JoinType=1 OR B.JoinType=3 OR B.JoinType=4 OR B.JoinType=5 OR (B.JoinType=2 AND B.EffectStatus IN(1) )) ";
} }
string sql = $@" string sql = $@"
......
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.Course
{
/// <summary>
/// 订单分拆关联信息仓储层
/// </summary>
public class RB_Order_SplitDetailsRepository : BaseRepository<RB_Order_SplitDetails>
{
/// <summary>
/// 获取订单拆分关联列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Order_SplitDetails_ViewModel> GetOrderSplitDetailsListRepository(RB_Order_SplitDetails_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.ClassName,'') AS S_ClassName,IFNULL(C.ClassName,'') AS T_ClassName
FROM RB_Order_SplitDetails AS A LEFT JOIN RB_class AS B ON A.S_ClassId=B.ClassId
LEFT JOIN rb_class AS C ON A.T_ClassId=C.ClassId
WHERE 1=1
");
if (query != null)
{
if (query.OldOrderId > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Order_SplitDetails_ViewModel.OldOrderId), query.OldOrderId);
}
if (!string.IsNullOrEmpty(query.Q_OldOrderIds))
{
builder.AppendFormat(@" AND A.{0} IN({1}) ", nameof(RB_Order_SplitDetails_ViewModel.OldOrderId), query.Q_OldOrderIds);
}
}
return Get<RB_Order_SplitDetails_ViewModel>(builder.ToString()).ToList();
}
}
}
...@@ -776,7 +776,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -776,7 +776,7 @@ namespace Edu.WebApi.Controllers.Course
List<object> guestList = new List<object>(); 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))) 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.InsertClass && data.ClassDate >= Convert.ToDateTime(Common.ConvertHelper.FormatDate(item.EffectTime)))) 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))))
{ {
guestList.Add(new guestList.Add(new
{ {
......
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