Commit a5f50614 authored by 黄奎's avatar 黄奎

新增页面

parent 4a6fc200
......@@ -102,5 +102,10 @@ namespace Edu.Model.Entity.Course
/// 财务单据id
/// </summary>
public int FinanceId;
}
/// <summary>
/// 实体退款金额
/// </summary>
public decimal RealityBackMoney { get; set; }
}
}
......@@ -60,11 +60,6 @@ namespace Edu.Module.Course
/// </summary>
private readonly RB_SchoolRepository schoolRepository = new RB_SchoolRepository();
/// <summary>
/// 流程仓储层对象
/// </summary>
private readonly RB_FlowRepository flowRepository = new RB_FlowRepository();
/// <summary>
/// 账号
/// </summary>
......@@ -75,6 +70,16 @@ namespace Edu.Module.Course
/// </summary>
private readonly RB_User_ChangeLogRepository changeLogRepository = new RB_User_ChangeLogRepository();
/// <summary>
/// 班级基础配置表仓储层对象
/// </summary>
private readonly RB_Class_ConfigRepository class_ConfigRepository = new RB_Class_ConfigRepository();
/// <summary>
/// 学员签到仓储层对象
/// </summary>
private readonly RB_Class_CheckRepository class_CheckRepository = new RB_Class_CheckRepository();
/// <summary>
/// 获取学员退课单据分页列表
/// </summary>
......@@ -85,15 +90,41 @@ namespace Edu.Module.Course
/// <returns></returns>
public List<RB_Student_BackClass_ViewModel> GetStudentBackClassPageListModule(int pageIndex, int pageSize, out long rowsCount, RB_Student_BackClass_ViewModel query)
{
var list = student_BackClassRepository.GetStudentBackClassPageListRepository(pageIndex, pageSize, out rowsCount, query);
if (list != null)
{
foreach (var item in list)
{
return student_BackClassRepository.GetStudentBackClassPageListRepository(pageIndex, pageSize, out rowsCount, query);
}
}
}
return list;
/// <summary>
/// 计算学员退课金额
/// </summary>
/// <param name="BackId"></param>
/// <returns></returns>
public object GetBackBillMoneyModule(int BackId)
{
var backModel = student_BackClassRepository.GetEntity(BackId);
var guestModel = order_GuestRepository.GetEntity(backModel.GuestId);
var orderModel = orderRepository.GetEntity(backModel.OrderId);
//班级实体类
var classModel = classRepository.GetEntity(backModel.ClassId);
//基础课时分钟数
var BasicMinutes = class_ConfigRepository.GetClassConfigRepository(new RB_Class_Config_ViewModel() { Group_Id = backModel.Group_Id })?.BasicMinutes ?? 45;
var stuCheckList = class_CheckRepository.GetGuestFinishMinutesRepository(backModel.GuestId.ToString());
//总签到上课分钟数
var totalFinishMinutes = stuCheckList?.Sum(qitem => qitem.FinishMinutes) ?? 0;
//完成课时数
var FinishHours = Convert.ToInt32(totalFinishMinutes) / BasicMinutes;
//预计退款金额
var backMoney = orderModel.PreferPrice / orderModel.GuestNum - orderModel.PreferPrice / orderModel.GuestNum / classModel.ClassHours * FinishHours;
var obj = new
{
orderModel.PreferPrice,
orderModel.GuestNum,
classModel.ClassHours,
FinishHours,
classHourPrice = Math.Round(orderModel.PreferPrice / orderModel.GuestNum / classModel.ClassHours, 2),
backMoney = Math.Round(backMoney,2)
};
return obj;
}
/// <summary>
......@@ -106,7 +137,7 @@ namespace Edu.Module.Course
/// <param name="message">返回提示信息</param>
/// <param name="BackMoney"></param>
/// <returns></returns>
public virtual bool SetBackBillAduitModule(int BackId, int AuditStatus, string Description, UserInfo user, out string message,int SpecialNode=0, decimal BackMoney = 0)
public virtual bool SetBackBillAduitModule(int BackId, int AuditStatus, string Description, UserInfo user, out string message,int SpecialNode=0, decimal BackMoney = 0,string RecipientIds="")
{
message = "";
bool flag = false;
......@@ -117,6 +148,12 @@ namespace Edu.Module.Course
message = "单据不存在,请核实!";
return flag;
}
//抄送人
string newRecipientIds = "";
if (!string.IsNullOrEmpty(RecipientIds))
{
newRecipientIds = ((!string.IsNullOrEmpty(backModel.RecipientIds) ? backModel.RecipientIds : "") + "," + RecipientIds).TrimStart(',').TrimEnd(',');
}
//获取审核记录
var aurList = student_BackRecordRepository.GetStudentBackRecordListRepository(new RB_Student_BackRecord_ViewModel()
......@@ -184,19 +221,11 @@ namespace Edu.Module.Course
}
#region 更新订单旅客表未驳回状态
Dictionary<string, object> guestFileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_ViewModel.GuestState),4 }
};
flag = order_GuestRepository.Update(guestFileds, new WhereHelper(nameof(RB_Order_Guest_ViewModel.Id), backModel.StudentId));
flag = UpdateOrderGuestStatusModule(4, backModel.StudentId);
#endregion
#region 更新退课单据为驳回状态
Dictionary<string, object> backFileds = new Dictionary<string, object>()
{
{nameof(RB_Student_BackClass_ViewModel.AuditStatus), (int)BackClassAuditStatusEnum.Rejected }
};
flag = student_BackClassRepository.Update(backFileds, new WhereHelper(nameof(RB_Student_BackClass_ViewModel.BackId), backModel.BackId));
flag = UpdateStuBackBillStatusModule(BackClassAuditStatusEnum.Rejected, newRecipientIds, backModel.BackId,SpecialNode:SpecialNode,BackMoney:BackMoney);
#endregion
}
//审核通过
......@@ -252,17 +281,8 @@ namespace Edu.Module.Course
#region 更新审核关联表状态
flag = UpdateStuRelevanceModule(model.Id, model.Stauts, model.AuditedId);
#endregion
//更新主表状态
Dictionary<string, object> backFileds = new Dictionary<string, object>()
{
{nameof(RB_Student_BackClass_ViewModel.AuditStatus), (int)BackClassAuditStatusEnum.Pass }
};
if (SpecialNode == 1)
{
backFileds.Add(nameof(RB_Student_BackClass_ViewModel.BackMoney), BackMoney);
}
flag = student_BackClassRepository.Update(backFileds, new WhereHelper(nameof(RB_Student_BackClass_ViewModel.BackId), backModel.BackId));
flag = UpdateStuBackBillStatusModule(BackClassAuditStatusEnum.Pass, newRecipientIds, backModel.BackId, SpecialNode: SpecialNode, BackMoney: BackMoney);
}
else
{
......@@ -316,16 +336,8 @@ namespace Edu.Module.Course
flag = UpdateStuRecordModule(WFRrocessStatus.OtherHaveAudit, Description, user.Id, item.Id);
}
}
Dictionary<string, object> backFileds = new Dictionary<string, object>()
{
{nameof(RB_Student_BackClass_ViewModel.AuditStatus), (int)BackClassAuditStatusEnum.Pass }
};
if (SpecialNode == 1)
{
backFileds.Add(nameof(RB_Student_BackClass_ViewModel.BackMoney), BackMoney);
}
flag = student_BackClassRepository.Update(backFileds, new WhereHelper(nameof(RB_Student_BackClass_ViewModel.BackId), backModel.BackId));
//更新主表状态
flag = UpdateStuBackBillStatusModule(BackClassAuditStatusEnum.Pass, newRecipientIds, backModel.BackId, SpecialNode: SpecialNode, BackMoney: BackMoney);
}
else
{
......@@ -358,17 +370,9 @@ namespace Edu.Module.Course
#region 更新审核关联表状态
flag = UpdateStuRelevanceModule(model.Id, model.Stauts, model.AuditedId);
#endregion
Dictionary<string, object> backFileds = new Dictionary<string, object>()
{
{nameof(RB_Student_BackClass_ViewModel.AuditStatus), (int)BackClassAuditStatusEnum.Pass }
};
if (SpecialNode == 1)
{
backFileds.Add(nameof(RB_Student_BackClass_ViewModel.BackMoney), BackMoney);
}
flag = student_BackClassRepository.Update(backFileds, new WhereHelper(nameof(RB_Student_BackClass_ViewModel.BackId), backModel.BackId));
//更新主表状态
flag = UpdateStuBackBillStatusModule(BackClassAuditStatusEnum.Pass, newRecipientIds, backModel.BackId, SpecialNode: SpecialNode, BackMoney: BackMoney);
}
//更新抄送人状态
//var CopyToPeopleList = copyToPeopleRepository.GetCopyToPeopleList(WorkFlowId, TemplateType);
//foreach (var item in CopyToPeopleList)
......@@ -377,7 +381,6 @@ namespace Edu.Module.Course
//}
//CopyAccountList = CopyToPeopleList.Select(x => new EmAccoutIdModel { EmAccount = x.EmLoginMobile, EmployeeId = x.EmployeeId ?? 0 }).Distinct().ToList();
//copyToPeopleRepository.UpdateBatch(CopyToPeopleList, trans);
}
//同时创建下一步审核 复制审核人到审核关联表 创建审核记录表
else
......@@ -537,6 +540,48 @@ namespace Edu.Module.Course
return flag;
}
/// <summary>
/// 更新退课主表状态
/// </summary>
/// <param name="statusEnum">审核状态</param>
/// <param name="newRecipientIds">抄送人</param>
/// <param name="BackId">退课表主键编号</param>
/// <param name="SpecialNode">是否是特殊节点(1-是)</param>
/// <param name="BackMoney">实际退款金额</param>
/// <returns></returns>
private bool UpdateStuBackBillStatusModule(BackClassAuditStatusEnum statusEnum, string newRecipientIds, int BackId,int SpecialNode=0,decimal BackMoney=0)
{
Dictionary<string, object> backFileds = new Dictionary<string, object>()
{
{nameof(RB_Student_BackClass_ViewModel.AuditStatus), (int)statusEnum }
};
if (!string.IsNullOrEmpty(newRecipientIds))
{
backFileds.Add(nameof(RB_Student_BackClass_ViewModel.RecipientIds), newRecipientIds);
}
//特殊节点更新时间退课金额
if (SpecialNode == 1)
{
backFileds.Add(nameof(RB_Student_BackClass_ViewModel.RealityBackMoney), BackMoney);
}
bool flag = student_BackClassRepository.Update(backFileds, new WhereHelper(nameof(RB_Student_BackClass_ViewModel.BackId), BackId));
return flag;
}
/// <summary>
/// 更新学员退课状态
/// </summary>
/// <param name="GuestState"></param>
/// <param name="guestId"></param>
/// <returns></returns>
private bool UpdateOrderGuestStatusModule(int GuestState, int guestId)
{
Dictionary<string, object> guestFileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_ViewModel.GuestState),GuestState }
};
return order_GuestRepository.Update(guestFileds, new WhereHelper(nameof(RB_Order_Guest_ViewModel.Id), guestId));
}
/// <summary>
/// 更新审核记录表信息
......@@ -799,8 +844,8 @@ namespace Edu.Module.Course
{
CostTypeId = Config.ReadConfigKey("StuBackCostTypeId"),
Number = 1,
OriginalMoney = backModel.BackMoney,
UnitPrice = backModel.BackMoney,
OriginalMoney = backModel.RealityBackMoney,
UnitPrice = backModel.RealityBackMoney,
Remark = "学员【"+guestModel.GuestName+"】退课"
}
};
......@@ -812,7 +857,7 @@ namespace Edu.Module.Course
ClientType = clientType,
ClientID = clientId,
CurrencyId,
WBMoney = backModel.BackMoney,
WBMoney = backModel.RealityBackMoney,
PayDate = DateTime.Now.ToString("yyyy-MM-dd"),
TemplateId = Config.ReadConfigKey("StuBackTemplete"),
OrderSource = 17,
......@@ -848,11 +893,13 @@ namespace Edu.Module.Course
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Student_BackClass.FinanceId),frid}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
List<WhereHelper> wheres = new List<WhereHelper>()
{
new WhereHelper()
{
FiledName=nameof(RB_Teaching_Perf_ViewModel.Id),
FiledValue=backModel.BackId,
OperatorEnum=OperatorEnum.Equal
FiledValue=backModel.BackId,
OperatorEnum=OperatorEnum.Equal
}
};
bool flag = student_BackClassRepository.Update(keyValues, wheres);
......
......@@ -346,15 +346,14 @@ namespace Edu.WebApi.Controllers.Course
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetClassOrderForDetail() {
var userInfo = base.UserInfo;
public ApiResult GetClassOrderForDetail()
{
JObject parms = JObject.Parse(RequestParm.Msg.ToString());
int OrderId = parms.GetInt("OrderId", 0);
if (OrderId <= 0)
{
return ApiResult.ParamIsNull();
}
var model = orderModule.GetClassOrderInfo_V2(OrderId);
if (model == null)
{
......
......@@ -87,7 +87,8 @@ namespace Edu.WebApi.Controllers.Course
item.ApplyReason,
item.OrderId,
AuditStatusName=item.AuditStatus.ToName(),
item.SpecialNode
item.SpecialNode,
item.RealityBackMoney,
});
}
pageModel.Count = rowsCount;
......@@ -112,10 +113,26 @@ namespace Edu.WebApi.Controllers.Course
decimal BackMoney= base.ParmJObj.GetDecimal("BackMoney");
//是否是特殊节点
var SpecialNode = base.ParmJObj.GetInt("SpecialNode");
var flag = studentBillModule.SetBackBillAduitModule(BackId, AuditStatus, Description, base.UserInfo,out string message, SpecialNode: SpecialNode, BackMoney: BackMoney);
//抄送人
string RecipientIds = base.ParmJObj.GetStringValue("RecipientIds");
var flag = studentBillModule.SetBackBillAduitModule(BackId, AuditStatus, Description, base.UserInfo,out string message, SpecialNode: SpecialNode, BackMoney: BackMoney, RecipientIds: RecipientIds);
return flag ? ApiResult.Success(message: message) : ApiResult.Failed(message: message);
}
/// <summary>
/// 获取学员预计退课金额
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetBackBillMoney()
{
//退课单据号
var BackId = base.ParmJObj.GetInt("BackId");
var data = studentBillModule.GetBackBillMoneyModule(BackId);
return ApiResult.Success(data: data);
}
/// <summary>
/// 获取单据详情
/// </summary>
......
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