Пример #1
0
 public async Task SaveReport(OrderHandoverRequest request)
 {
     request.CreatorId   = base.CurrentUser.UserId;
     request.CreatorName = base.CurrentUser.UserName;
     request.CreateTime  = request.HandoverDate = DateTime.Now;
     request.SchoolId    = base.SchoolId;
     await new OrderHandoverService(base.SchoolId).SaveReport(request);
 }
 /// <summary>
 /// 生成收款交接单之前进行数据校验
 /// <para>作    者:郭伟佳</para>
 /// <para>创建时间:2018-12-25</para>
 /// </summary>
 /// <param name="request">收款交接信息请求对象</param>
 /// <param name="details">收款交接明细信息</param>
 /// <exception cref="AMS.Core.BussinessException">
 /// 异常ID:
 /// 21. 系统不存在该招生专员的收款交接信息
 /// 26. 交接单发生变化,请重新交接
 /// </exception>
 private void CheckReport(OrderHandoverRequest request, IEnumerable <TblFinOrderHandoverDetail> details)
 {
     //是否存在收款交接明细信息
     if (!details.Any())
     {
         throw new BussinessException((byte)ModelType.Order, 21);
     }
     //检查收款交接单的总记录数与总金额数是否有问题
     if (details.Count() != request.TotalRecord || details.Sum(a => a.PayAmount + a.UseBalanceAmount + a.TotalDiscountFee) != request.TotalAmount)
     {
         throw new BussinessException((byte)ModelType.Order, 26);
     }
 }
        /// <summary>
        /// 生成收款交接表信息
        /// <para>作    者:郭伟佳</para>
        /// <para>创建时间:2018-11-19</para>
        /// </summary>
        /// <param name="request">收款交接信息请求对象</param>
        /// <returns>无</returns>
        /// <exception cref="AMS.Core.BussinessException">
        /// 异常ID:
        /// 21. 系统不存在该招生专员的收款交接信息
        /// 26. 交接单发生变化,请重新交接
        /// </exception>
        public async Task SaveReport(OrderHandoverRequest request)
        {
            //获取收款交接明细信息
            var details = _detailRepository.Value.GetDetailsByPersonalId(request.SchoolId, request.PersonalId).Result.Where(a => a.HandoverStatus == (int)HandoverStatus.Checked);

            //1.数据校验
            CheckReport(request, details);

            //2.生成收款交接信息
            TblFinOrderHandover entity = AddOrderHandover(request);

            //3.收款交接明细的交接日期
            await _detailRepository.Value.UpdateDetailsByHandoverId(entity);

            //4.更新订单状态为已完成
            UpdateOrderStatus(details);
        }
        /// <summary>
        /// 添加收款交接信息
        /// <para>作    者:郭伟佳</para>
        /// <para>创建时间:2018-12-25</para>
        /// </summary>
        /// <param name="request">收款交接信息请求对象</param>
        /// <returns>订单交接核对信息</returns>
        private TblFinOrderHandover AddOrderHandover(OrderHandoverRequest request)
        {
            var entity = new TblFinOrderHandover
            {
                OrderHandoverId = IdGenerator.NextId(),
                SchoolId        = request.SchoolId,
                PersonalId      = request.PersonalId,
                PersonalName    = request.PersonalName,
                DayIncomeAmout  = request.DayIncomeAmout,
                InBankAmount    = request.InBankAmount,
                ReceiptNumber   = request.ReceiptNumber,
                HandoverDate    = request.HandoverDate,
                RecipientUrl    = request.RecipientUrl,
                HandoverUrl     = request.HandoverUrl,
                Remark          = request.Remark,
                CreatorId       = request.CreatorId,
                CreatorName     = request.CreatorName,
                CreateTime      = request.CreateTime
            };

            _repository.Value.Add(entity);
            return(entity);
        }