/// <summary> /// 根据招生专员Id获取收款交接表 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-19</para> /// </summary> /// <param name="personalId">招生专员Id</param> /// <returns>收款交接表信息</returns> public OrderHandoverReportResponse GetHandoverListByPersonalId(string personalId) { //获取招生专员对应的订单交接核对明细 var handoverDetails = _detailRepository.Value.GetDetailsByPersonalId(this._schoolId, personalId).Result.Where(a => a.HandoverStatus == (int)HandoverStatus.Checked); OrderHandoverReportResponse result = GetHandoverList(handoverDetails); //获取招生专员信息 result.PersonalName = EmployeeService.GetByEmployeeId(personalId)?.EmployeeName; result.HandoverDate = DateTime.Now; return(result); }
/// <summary> /// 获取收款交接汇总信息 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-19</para> /// </summary> /// <param name="handoverDetails">收款交接明细信息列表</param> /// <returns>收款交接表信息</returns> private OrderHandoverReportResponse GetHandoverList(IEnumerable <TblFinOrderHandoverDetail> handoverDetails) { OrderHandoverReportResponse report = new OrderHandoverReportResponse(); if (handoverDetails != null && handoverDetails.Any()) { //获取按订单类型汇总的订单交接核对明细(支付日期等于创建日期的已核对的订单) var handoverDetailsByTrade = handoverDetails.Where(a => a.CreateTime.Date == a.PayDate.Date); var tradeList = GetHandoverTradeListByTradeType(handoverDetailsByTrade); report.TradeList = tradeList; report.TradeTotalAmount = tradeList.Sum(a => a.TotalAmount); //获取按日期汇总的订单交接核对明细(往日已收款&今日入系统(本月)的已核对的订单) var handoverDetailsByCurrentMonth = handoverDetails.Where(a => a.PayDate.Date != a.CreateTime.Date && a.PayDate.Month == DateTime.Now.Month); var currentMonthList = GetHandoverListByDay(handoverDetailsByCurrentMonth); report.CurrentMonthList = currentMonthList.OrderBy(a => a.PayDate).ToList(); report.CurrentMonthTotalAmount = currentMonthList.Sum(a => a.TotalAmount); //获取按日期汇总的订单交接核对明细(往日已收款&今日入系统(往月)的已核对的订单) var handoverDetailsByLastMonth = handoverDetails.Where(a => a.PayDate.Date != a.CreateTime.Date && a.PayDate.Month != DateTime.Now.Month); var lastMonthList = GetHandoverListByDay(handoverDetailsByLastMonth); report.LastMonthList = lastMonthList.OrderBy(a => a.PayDate).ToList(); report.LastMonthTotalAmount = lastMonthList.Sum(a => a.TotalAmount); //合计金额 report.TotalAmount = report.TradeTotalAmount + report.CurrentMonthTotalAmount + report.LastMonthTotalAmount; //总记录数 report.TotalRecord = tradeList.Sum(a => a.HandoverNumber) + currentMonthList.Sum(a => a.HandoverNumber) + lastMonthList.Sum(a => a.HandoverNumber); //获取按订单类型汇总的订单交接核对明细(所有已核对的订单) var tradeAllList = GetHandoverTradeListByTradeType(handoverDetails); var tradeSummaryList = tradeAllList.Select(a => new OrderHandoverTradeSummaryResponse { OrderTradeType = a.OrderTradeType, OrderTradeTypeName = a.OrderTradeTypeName, Cash = a.Cash, OtherAmount = a.OtherAmount, PayAmount = a.PayAmount, TransferAmount = a.TransferAmount, //合计=现钞+刷卡/微信/支付宝+转账+其他 TotalAmount = a.Cash + a.PayAmount + a.TransferAmount + a.OtherAmount }).ToList(); report.TradeSummaryList = tradeSummaryList; report.TradeSummaryTotalAmount = tradeSummaryList.Sum(a => a.TotalAmount); report.DayIncomeAmout = tradeSummaryList.Sum(a => a.Cash);//收现钞=所有当前已核对的订单的支付方式是现钞的金额的之和 } return(report); }
/// <summary> /// 根据收款交接Id获取收款交接表信息 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-19</para> /// </summary> /// <param name="handoverId">订单交接Id</param> /// <returns>收款交接表信息</returns> public OrderHandoverReportResponse GetHandoverListByHandoverId(long handoverId) { //获取收款交接信息 var handoverInfo = _repository.Value.GetByHandoverId(handoverId); if (handoverInfo != null) { //获取招生专员对应的订单交接核对明细 var handoverDetails = _detailRepository.Value.GetDetailsByHandoverId(handoverId).Result; //获取收款交接明细的汇总信息 OrderHandoverReportResponse result = GetHandoverList(handoverDetails); result.DayIncomeAmout = handoverInfo.DayIncomeAmout; result.HandoverDate = handoverInfo.HandoverDate; result.HandoverUrl = handoverInfo.HandoverUrl; result.InBankAmount = handoverInfo.InBankAmount; result.PersonalName = handoverInfo.PersonalName; result.ReceiptNumber = handoverInfo.ReceiptNumber; result.RecipientUrl = handoverInfo.RecipientUrl; result.Remark = handoverInfo.Remark; return(result); } return(new OrderHandoverReportResponse()); }