Commit 41d71833 authored by 吴春's avatar 吴春

提交代码

parent 4f1e298a
......@@ -11,84 +11,89 @@ namespace Edu.Model.Entity.EduTask
[DB(ConnectionName = "DefaultConnection")]
public class RB_Education_Receipt
{
/// <summary>
/// 主键(教务单据编号)
/// </summary>
public int Id { get; set; }
/// <summary>
/// 单据标题
/// </summary>
public string Title { get; set; }
/// <summary>
/// 班级编号
/// </summary>
public int ClassId { get; set; }
/// <summary>
/// 订单编号
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 单据类型
/// </summary>
public ReceiptTypeEnum ReceiptType { get; set; }
/// <summary>
/// 关联编号(根据单据类型匹配)
/// </summary>
public int RelationId { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 学校编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 修改人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
/// <summary>
/// 抄送人(多个逗号分隔)
/// </summary>
public string RecipientIds { get; set; }
/// <summary>
/// 审核状态(见枚举)
/// </summary>
public Edu.Common.Enum.EduTask.EduTaskRrocessStatus VerifyStatus { get; set; }
/// <summary>
/// 是否生成相应单据
/// </summary>
public int IsCreate { get; set; }
/// <summary>
/// 生效时间
/// </summary>
public DateTime? EffectiveDate { get; set; }
}
/// <summary>
/// 主键(教务单据编号)
/// </summary>
public int Id { get; set; }
/// <summary>
/// 单据标题
/// </summary>
public string Title { get; set; }
/// <summary>
/// 班级编号
/// </summary>
public int ClassId { get; set; }
/// <summary>
/// 订单编号
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 单据类型
/// </summary>
public ReceiptTypeEnum ReceiptType { get; set; }
/// <summary>
/// 关联编号(根据单据类型匹配)
/// </summary>
public int RelationId { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 学校编号
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 修改人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdateTime { get; set; }
/// <summary>
/// 抄送人(多个逗号分隔)
/// </summary>
public string RecipientIds { get; set; }
/// <summary>
/// 审核状态(见枚举)
/// </summary>
public Edu.Common.Enum.EduTask.EduTaskRrocessStatus VerifyStatus { get; set; }
/// <summary>
/// 是否生成相应单据
/// </summary>
public int IsCreate { get; set; }
/// <summary>
/// 生效时间
/// </summary>
public DateTime? EffectiveDate { get; set; }
/// <summary>
/// 附件
/// </summary>
public string ReceiptFile { get; set; }
}
}
......@@ -39,5 +39,10 @@ namespace Edu.Model.ViewModel.EduTask
/// 课程名称
/// </summary>
public string CourseName { get; set; }
/// <summary>
/// 附件list
/// </summary>
public List<string> ReceiptFileList { get; set; }
}
}
......@@ -458,6 +458,7 @@ namespace Edu.Module.EduTask
AuditObj,
item.VerifyStatus,
AuditStatusName = item.VerifyStatus == Common.Enum.EduTask.EduTaskRrocessStatus.NotAudit ? "待审" : item.VerifyStatus.ToName(),
ReceiptFileList= string.IsNullOrWhiteSpace(item.ReceiptFile)?new List<string>() : Common.Plugin.JsonHelper.DeserializeObject<List<string>>(item.ReceiptFile)
};
result.Add(obj);
}
......
......@@ -84,7 +84,7 @@ namespace Edu.Module.EduTask
/// <param name="model"></param>
/// <returns></returns>
[TransactionCallHandler]
public virtual bool SetOrderChangeModule(RB_Order_Change_ViewModel model, out string message)
public virtual bool SetOrderChangeModule(RB_Order_Change_ViewModel model, string receiptFile, out string message)
{
message = "";
bool flag = false;
......@@ -109,7 +109,8 @@ namespace Edu.Module.EduTask
UpdateTime = model.UpdateTime,
VerifyStatus = Common.Enum.EduTask.EduTaskRrocessStatus.NotAudit,
IsCreate = 0,
EffectiveDate = model.EffectiveDate
EffectiveDate = model.EffectiveDate,
ReceiptFile = receiptFile
};
flag = education_ReceiptRepository.SetEducationReceiptRepository(educationReceipt, out message);
Dictionary<string, object> guestFileds = new Dictionary<string, object>()
......@@ -131,7 +132,7 @@ namespace Edu.Module.EduTask
/// <returns></returns>
public GuestFinishMinute_ViewModel GetGuestFinishMinutesModule(string guestIds)
{
var model= classCheckRepository.GetGuestFinishMinutesRepository(guestIds)?.FirstOrDefault();
var model = classCheckRepository.GetGuestFinishMinutesRepository(guestIds)?.FirstOrDefault();
if (model == null)
{
model = new GuestFinishMinute_ViewModel();
......@@ -144,7 +145,7 @@ namespace Edu.Module.EduTask
/// </summary>
/// <param name="query"></param>
/// <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()
{
......@@ -164,7 +165,7 @@ namespace Edu.Module.EduTask
{
ReceiptType = (int)ReceiptTypeEnum.OrderTransClass,
VerifyStatus = (int)EduTaskRrocessStatus.AuditThrough,
QEffectiveDate=Common.ConvertHelper.FormatDate(DateTime.Now)
QEffectiveDate = Common.ConvertHelper.FormatDate(DateTime.Now)
});
if (list != null && list.Count > 0)
{
......@@ -188,7 +189,7 @@ namespace Edu.Module.EduTask
if (receiptModel.RelationId > 0)
{
var orderChangeModel = order_ChangeRepository.GetEntity<RB_Order_Change_ViewModel>(receiptModel.RelationId);
if (orderChangeModel != null && orderChangeModel.Id > 0)
{
if (orderChangeModel.EffectiveDate < DateTime.Now)
......@@ -196,7 +197,8 @@ namespace Edu.Module.EduTask
return false;
}
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
});
var oldClassModel = classList?.Where(qitem => qitem.ClassId == oldOrderModel.ClassId)?.FirstOrDefault() ?? new RB_Class_ViewModel();
......@@ -204,18 +206,18 @@ namespace Edu.Module.EduTask
var newCourseModel = courseRepository.GetEntity(orderChangeModel.NewCourseId);
var userInfo = UserReidsCache.GetUserLoginInfo(oldOrderModel.EnterID);
var guestClassHours = GetGuestFinishMinutesModule(orderChangeModel.OrderGuestId.ToString());
var guestModel = guestRepository.GetEntity(orderChangeModel.OrderGuestId);
//计算课时单价
//老订单应收
//单个人员的课时单价
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 singlePreferPrice = Math.Round(guestModel.TotalHours * unitPrice, 2);
//原订单应收=原订单应收-单人应收+单人完成
decimal oldPreferPrice = oldOrderModel.PreferPrice- singlePreferPrice+ singleFinishPrice;
decimal oldPreferPrice = oldOrderModel.PreferPrice - singlePreferPrice + singleFinishPrice;
//新订单应收和退款一致
decimal newPreferPrice = singlePreferPrice - singleFinishPrice;
#region 生成新订单
......@@ -244,8 +246,8 @@ namespace Edu.Module.EduTask
UpOrderId = 0,
VisitorReserveId = 0,
JoinType = Common.Enum.Sale.OrderJoinTypeEnum.TransOrder,
TargetJoinType= Common.Enum.Sale.OrderJoinTypeEnum.Normal,
EffectTime= orderChangeModel.EffectiveDate,
TargetJoinType = Common.Enum.Sale.OrderJoinTypeEnum.Normal,
EffectTime = orderChangeModel.EffectiveDate,
};
orderModel.SourceOrderId = orderChangeModel.SourceOrderId;
orderModel.Group_Id = userInfo.Group_Id;
......@@ -293,17 +295,17 @@ namespace Edu.Module.EduTask
{
var changeModel = new OrderChangeFinace()
{
ChangeType=1,
InCome= newPreferPrice,
GuestId=guestModel.Id,
GuestName=guestModel.GuestName,
UserInfo=userInfo,
ClassId=oldOrderModel.ClassId,
ClassName=oldClassModel.ClassName,
Class_School_Id=oldClassModel.School_Id,
SName=oldClassModel.SchoolName,
OrderId=oldOrderModel.OrderId,
ChangeType = 1,
InCome = newPreferPrice,
GuestId = guestModel.Id,
GuestName = guestModel.GuestName,
UserInfo = userInfo,
ClassId = oldOrderModel.ClassId,
ClassName = oldClassModel.ClassName,
Class_School_Id = oldClassModel.School_Id,
SName = oldClassModel.SchoolName,
OrderId = oldOrderModel.OrderId,
};
var RelevanceFrId = CreateExpenditure(changeModel, out string msg1);
var changeModel2 = new OrderChangeFinace()
......@@ -314,9 +316,9 @@ namespace Edu.Module.EduTask
GuestName = guestModel.GuestName,
UserInfo = userInfo,
ClassId = orderModel.ClassId,
ClassName= newClassModel.ClassName,
Class_School_Id=newClassModel.School_Id,
SName=newClassModel.SchoolName,
ClassName = newClassModel.ClassName,
Class_School_Id = newClassModel.School_Id,
SName = newClassModel.SchoolName,
OrderId = orderModel.OrderId,
ReFinanceId = RelevanceFrId
};
......@@ -357,7 +359,7 @@ namespace Edu.Module.EduTask
Remark = "学员【"+change.GuestName+"】收入"
}
};
string Remark = "【" + (change.ClassName ?? "") + "】下,订单" + change.OrderId + " 客人"+(change.ChangeType==1? "转班" : "分拆");
string Remark = "【" + (change.ClassName ?? "") + "】下,订单" + change.OrderId + " 客人" + (change.ChangeType == 1 ? "转班" : "分拆");
var financeObj = new
{
BType = 1,
......@@ -365,7 +367,7 @@ namespace Edu.Module.EduTask
IsPublic = 7,
ClientType = 3659,
CurrencyId = 1,
GuestId=change.GuestId,
GuestId = change.GuestId,
WBMoney = change.InCome,
PayDate = DateTime.Now.ToString("yyyy-MM-dd"),
TemplateId = 186,
......@@ -377,7 +379,7 @@ namespace Edu.Module.EduTask
CallBackReFrId = change.ReFinanceId,
Remark,
detailList,
CreateBy =change.UserInfo.Id,
CreateBy = change.UserInfo.Id,
RB_Branch_Id = change.Class_School_Id,
RB_Depart_Id = change.UserInfo.DeptId,
RB_Group_Id = change.UserInfo.Group_Id,
......@@ -386,7 +388,7 @@ namespace Edu.Module.EduTask
RB_BranchName = change?.SName ?? "",
RB_GroupName = change.UserInfo.GroupName,
FinanceType = 2,
RemitterName =change.ChangeType==1? "转班":"分拆",
RemitterName = change.ChangeType == 1 ? "转班" : "分拆",
TradeDate = Common.ConvertHelper.FormatDate(DateTime.Now),
AccountNumber = Common.ConvertHelper.FormatDate(DateTime.Now),
};
......@@ -410,7 +412,7 @@ namespace Edu.Module.EduTask
CreateBy = change.UserInfo.Id,
CreateTime = DateTime.Now,
Group_Id = change.UserInfo.Group_Id,
LogContent = "生成学员"+(change.ChangeType == 1 ? "转班" : "分拆") +"财务单据【" + change.OrderId + "】",
LogContent = "生成学员" + (change.ChangeType == 1 ? "转班" : "分拆") + "财务单据【" + change.OrderId + "】",
School_Id = change.UserInfo.School_Id,
SourceId = 0
});
......@@ -431,7 +433,7 @@ namespace Edu.Module.EduTask
/// <param name="change"></param>
/// <param name="msg"></param>
/// <returns></returns>
public int CreateExpenditure(OrderChangeFinace change,out string msg)
public int CreateExpenditure(OrderChangeFinace change, out string msg)
{
msg = "";
#region 新增财务单据
......@@ -453,17 +455,17 @@ namespace Edu.Module.EduTask
ClientType = 10,
ClientID = 3659,
CurrencyId = 1,
GuestId= change.GuestId,
GuestId = change.GuestId,
WBMoney = change.InCome,
PayDate = DateTime.Now.ToString("yyyy-MM-dd"),
TemplateId = 185,
OrderSource = 17,
OrderID =change.OrderId,
OrderID = change.OrderId,
TCIDList = new List<int>() { change.ClassId },
OtherType = 0,
Remark,
detailList,
CreateBy =change.UserInfo.Id,
CreateBy = change.UserInfo.Id,
RB_Branch_Id = change.Class_School_Id,
RB_Depart_Id = change.UserInfo.DeptId,
RB_Group_Id = change.UserInfo.Group_Id,
......@@ -492,7 +494,7 @@ namespace Edu.Module.EduTask
CreateBy = change.UserInfo.Id,
CreateTime = DateTime.Now,
Group_Id = change.UserInfo.Group_Id,
LogContent = "生成学员"+(change.ChangeType==1? "转班" : "分拆")+"财务单据【" + change.OrderId + "】",
LogContent = "生成学员" + (change.ChangeType == 1 ? "转班" : "分拆") + "财务单据【" + change.OrderId + "】",
School_Id = change.UserInfo.School_Id,
SourceId = 0
});
......@@ -516,7 +518,7 @@ namespace Edu.Module.EduTask
/// <param name="model"></param>
/// <returns></returns>
[TransactionCallHandler]
public virtual bool SetOrderSplitModule(RB_Order_Change_ViewModel model, out string message)
public virtual bool SetOrderSplitModule(RB_Order_Change_ViewModel model, string receiptFile, out string message)
{
message = "";
bool flag = false;
......@@ -541,7 +543,8 @@ namespace Edu.Module.EduTask
UpdateTime = model.UpdateTime,
VerifyStatus = Common.Enum.EduTask.EduTaskRrocessStatus.NotAudit,
IsCreate = 0,
EffectiveDate = model.EffectiveDate
EffectiveDate = model.EffectiveDate,
ReceiptFile = receiptFile
};
flag = education_ReceiptRepository.SetEducationReceiptRepository(educationReceipt, out message);
Dictionary<string, object> guestFileds = new Dictionary<string, object>()
......@@ -584,19 +587,19 @@ 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 courseValidHourse = planList?.Sum(qitem => qitem.TimeHour) ?? 0;
//课程信息
var newCourseModel = courseRepository.GetEntity(orderChangeModel.NewCourseId);
//新班级课程的应收
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 guestModel = guestRepository.GetEntity(orderChangeModel.OrderGuestId);
//原订单应收=原订单应收-新班级课程的应收
decimal oldPreferPrice = oldOrderModel.PreferPrice - newPreferPrice ;
decimal oldPreferPrice = oldOrderModel.PreferPrice - newPreferPrice;
#region 生成新订单
var orderModel = new RB_Order_ViewModel()
{
......
......@@ -1037,6 +1037,7 @@ namespace Edu.WebApi.Controllers.Finance
x.ClassName,
x.ClassNo,
x.StudentName,
x.GuestId,
x.CreateByName,
x.CreateByPhoto,
x.TotalCourseFee,
......
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