コード例 #1
0
        private PrintResult Print(PrintConfigData printConfigData, Tbl_Scenic tbl_Scenic, Tbl_OrderDetail tbl_OrderDetail)
        {
            tbl_OrderDetail.UsedQuantity = tbl_OrderDetail.Quantity;
            tbl_OrderDetail.PrintCount++;
            if (tbl_OrderDetail.OrderStatus == (int)OrderDetailsDataStatus.Activate)
            {
                tbl_OrderDetail.OrderStatus = (int)OrderDetailsDataStatus.IsTaken;
            }

            _orderDetailService.Update(tbl_OrderDetail);
            var userInfo       = _enterpriseUserService.LoginForSession();
            var printOrderData = new PrintOrderData
            {
                OrderNo       = tbl_OrderDetail.OrderNo,
                TicketName    = tbl_OrderDetail.TicketName,
                Qunatity      = tbl_OrderDetail.Quantity,
                Price         = tbl_OrderDetail.Price,
                TotalAmount   = tbl_OrderDetail.Quantity * tbl_OrderDetail.Price,
                CertificateNo = tbl_OrderDetail.CertificateNO,
                QRcode        = SecurityExtension.DesEncrypt(tbl_OrderDetail.QRcode, DesKey.QrCodeKey),
                CreateTime    = tbl_OrderDetail.ValidityDateStart.ToString("yyyy-MM-dd"),
                PrintCount    = tbl_OrderDetail.PrintCount,
                RealName      = userInfo.RealName,
                UserName      = userInfo.UserName
            };

            if (tbl_Scenic != null)
            {
                printOrderData.ScenicName  = tbl_Scenic.ScenicName;
                printOrderData.ScenicPhone = tbl_Scenic.Tel;
            }
            return(_printGateway.Send(printOrderData, printConfigData));
        }
コード例 #2
0
        /// <summary>
        /// 日结报表统计
        /// </summary>
        /// <returns></returns>
        public TResult <ReportStatisticsModel> ReportStatistics()
        {
            var result     = new TResult <ReportStatisticsModel>();
            var reportList = new ReportStatisticsModel
            {
                List = new List <TicketSaleCount>()
            };
            var user    = _enterpriseUserService.LoginForSession();
            var nowDate = DateTime.Now.Date;
            var endTime = nowDate.AddDays(1).Date;
            var list    = _orderDetailRepository.db.Queryable <Tbl_OrderDetail, Tbl_Ticket, Tbl_Order>((a, b, c) => new object[] {
                JoinType.Left, a.TicketId == b.TicketId,
                JoinType.Inner, a.OrderNo == c.OrderNo
            })
                          .Where((a, b, c) => a.ScenicId == user.ScenicId &&
                                 a.SellerId == user.UserId &&
                                 c.SellerId == user.UserId &&
                                 a.TicketSource == (int)TicketSourceStatus.ScenicSpot &&
                                 a.CreateTime >= nowDate &&
                                 a.CreateTime < endTime &&
                                 ((a.OrderStatus == (int)OrderDetailsDataStatus.IsTaken) ||
                                  (a.OrderStatus == (int)OrderDetailsDataStatus.Activate) ||
                                  (a.OrderStatus == (int)OrderDetailsDataStatus.Consume) ||
                                  (a.OrderStatus == (int)OrderDetailsDataStatus.Canncel) ||
                                  (a.OrderStatus == (int)OrderDetailsDataStatus.Refund)))
                          .Select((a, b, c) => new
            {
                OrderDtlId     = a.OrderDetailId,
                TicketId       = a.TicketId,
                TicketName     = a.TicketName,
                OrderNo        = a.OrderNo,
                PayType        = (PayStatus)c.PayType,
                OrderType      = a.OrderType,
                Price          = a.Price,
                Quantity       = a.Quantity,
                ShelvesChannel = b.ShelvesChannel,
                OrderStatus    = a.OrderStatus,
                CreateTime     = a.CreateTime,
                SellerId       = a.SellerId
            }).ToList();


            reportList.TotalAmount  = list.Sum(p => (decimal)p.Quantity * p.Price);
            reportList.TotalCount   = list.Sum(p => p.Quantity);
            reportList.AlipayAmount = list.Where(p => p.PayType == PayStatus.Alipay).Sum(p => (decimal)p.Quantity * p.Price);
            reportList.CashAmount   = list.Where(p => p.PayType == PayStatus.ReadyMoney).Sum(p => (decimal)p.Quantity * p.Price);
            reportList.WxPayAmount  = list.Where(p => p.PayType == PayStatus.Wechat).Sum(p => (decimal)p.Quantity * p.Price);


            var shelvesChannelType = ((int)ShelvesChannelEnum.TeamTicket).ToString();//上线渠道

            var refundList = list.Where(p => p.OrderStatus == (int)OrderDetailsDataStatus.Refund).ToList();

            reportList.TotalRefundAmount  = refundList.Sum(p => (decimal)p.Quantity * p.Price);
            reportList.TotalRefundCount   = refundList.Sum(p => p.Quantity);
            reportList.AlipayRefundAmount = refundList.Where(p => p.PayType == PayStatus.Alipay).Sum(p => (decimal)p.Quantity * p.Price);
            reportList.CashRefundAmount   = refundList.Where(p => p.PayType == PayStatus.ReadyMoney).Sum(p => (decimal)p.Quantity * p.Price);
            reportList.WxPayRefundAmount  = refundList.Where(p => p.PayType == PayStatus.Wechat).Sum(p => (decimal)p.Quantity * p.Price);



            foreach (var row in list)
            {
                reportList.List.Add(new TicketSaleCount
                {
                    OrderNo      = row.OrderNo,
                    TicketName   = row.TicketName,
                    TicketId     = row.TicketId,
                    Price        = row.Price,
                    Count        = row.Quantity,
                    Amount       = (decimal)row.Quantity * row.Price,
                    RefundAmount = 0,
                    RefundCount  = 0
                });
            }
            foreach (var row in refundList)
            {
                reportList.List.Add(new TicketSaleCount
                {
                    OrderNo      = row.OrderNo,
                    TicketName   = row.TicketName,
                    TicketId     = row.TicketId,
                    Price        = row.Price,
                    Count        = 0,
                    Amount       = 0,
                    RefundAmount = (decimal)row.Quantity * row.Price,
                    RefundCount  = row.Quantity
                });
            }
            reportList.List = reportList.List.GroupBy(a => new { a.TicketId, a.TicketName, a.Price }).Select(a => new TicketSaleCount
            {
                TicketName   = a.Key.TicketName,
                TicketId     = a.Key.TicketId,
                Price        = a.Key.Price,
                Amount       = a.Sum(b => b.Amount),
                Count        = a.Sum(b => b.Count),
                RefundAmount = a.Sum(b => b.RefundAmount),
                RefundCount  = a.Sum(b => b.RefundCount),
            }).ToList();
            return(result.SuccessResult(reportList));
        }