/// <summary> /// 模板生成 /// </summary> /// <param name="orderDetail"></param> /// <param name="scenics"></param> /// <returns></returns> private string CreateTemplate(Tbl_OrderDetail orderDetail, List <Tbl_Scenic> scenics) { string ScenicName = string.Empty; //生成票模板 var scenic = scenics.FirstOrDefault(o => o.ScenicId == orderDetail.ScenicId); if (scenic != null) { ScenicName = scenic.ScenicName; } var data = new { OrderNo = orderDetail.OrderNo, ScenicName = ScenicName, CertificateNO = orderDetail.CertificateNO, TicketName = orderDetail.TicketName, Quantity = orderDetail.Quantity, Price = orderDetail.Price, Amount = (orderDetail.Price * orderDetail.Quantity), Mobile = orderDetail.Mobile, ValidityDateStart = orderDetail.ValidityDateStart, QRcodeUrl = orderDetail.QRcodeUrl }; string htmlStr = _templateService.GetJNTemplateData(@"printTicketNew.html", data); string modelname = OrderHelper.GenerateCertificateNO() + ".html"; string fileName = AppSettingsConfig.QrCodeModelPath + "/" + modelname; System.IO.StreamWriter sw; sw = new System.IO.StreamWriter(fileName, false, Encoding.UTF8); sw.Write(htmlStr); sw.Close(); string modelPath = AppSettingsConfig.PrintApiPath + modelname; return(modelPath); }
public void Add(Tbl_Ticket_Testing ticketTesting, Tbl_OrderDetail orderDetail) { //if (ticketTesting.DataStatus != (int)TicketTestingDataStatus.Employ) //{ // return; //} if (orderDetail.OrderSource == (int)OrderSource.OTA || orderDetail.OrderSource == (int)OrderSource.XiaoJing) { var order = _orderService.Get(orderDetail.OrderNo); if (order != null) { _ticketConsumeRepository.Add(new Tbl_TicketConsume { OrderNo = order.OrderNo, OtaOrderNo = order.OTAOrderNo, TicketTestingId = ticketTesting.TicketTestingId, TicketCategory = ticketTesting.TicketCategory, BarCode = ticketTesting.BarCode, QRcode = ticketTesting.QRcode, OrderDetailNumber = orderDetail.Number, OrderSource = orderDetail.OrderSource, SendStatus = false, CreateTime = DateTime.Now, SendCount = 0, TicketId = ticketTesting.TicketId }); } } }
/// <summary> /// 电子票发送短信 /// </summary> /// <param name="orderDetails"></param> /// <param name="mobile"></param> public StatusResult Send(Tbl_OrderDetail orderDetail, string mobile) { //发送短信 var tbl_Scenic = _scenicService.GetSurplusScenic(orderDetail.ScenicId); if (tbl_Scenic == null) { var message = "发送退票短信失败,该景区未开启短信功能,或短信余额不足"; AddSms(orderDetail, mobile, message); return(new StatusResult { Status = false, Message = message }); } var sendContent = GetRefundSendContent(orderDetail, tbl_Scenic); var status = SesHelper.Send(mobile, sendContent); if (status) { //短信发送成功,更改景区短信额度 _scenicService.UpdateSmsCount(orderDetail.ScenicId); } AddSms(orderDetail, mobile, sendContent, status); return(new StatusResult { Status = status, Message = status ? "发送退票短信成功" : "发送退票短信失败" }); }
/// <summary> /// 闸机入园更新[旅行社]状态 /// </summary> /// <param name="orderNo"></param> public void UpdateForConsume(Tbl_OrderDetail tbl_OrderDetail, Tbl_Ticket_Testing tbl_Ticket_Testing) { if (tbl_OrderDetail.OrderSource == (int)OrderSource.OTA && tbl_Ticket_Testing.UsedQuantity <= 1) { var travelAgencyOrder = _travelAgencyOrderRepository.FirstOrDefault(a => a.OrderNo == tbl_Ticket_Testing.OrderNo); if (travelAgencyOrder != null) { travelAgencyOrder.OrderStatus = (int)TraveAgencyOrderStatus.Consume; _travelAgencyOrderRepository.Update(travelAgencyOrder); } } }
/// <summary> /// 创建单个产品订单详情 /// </summary> /// <param name="order"></param> /// <param name="tbl_Order"></param> /// <returns></returns> public Tbl_OrderDetail AddOrderDetail(OrderSingleInfo order, Tbl_Order tbl_Order, Tbl_Ticket tbl_Ticket) { var ticketRule = _ticketRuleRepository.FirstOrDefault(a => a.Id == tbl_Ticket.RuleId); //二维码票: 每种门票 一个订单详情,多个数量 Tbl_OrderDetail tbl_OrderDetail = new Tbl_OrderDetail { Number = Guid.NewGuid(), OrderNo = tbl_Order.OrderNo, EnterpriseId = tbl_Ticket.EnterpriseId, ScenicId = tbl_Ticket.ScenicId, WindowId = 0, SellerId = 0, SellerType = 1, OtaOrderDetailId = 0, OrderSource = (int)OrderSource.OTA, TicketSource = (int)TicketSourceStatus.Ota, TicketCategory = (int)TicketCategoryStatus.QrCodeElectronTicket, UsedQuantity = 0, TicketId = tbl_Ticket.TicketId, TicketName = tbl_Ticket.TicketName, Price = tbl_Ticket.SalePrice, SettlementPrice = tbl_Ticket.SettlementPrice, Quantity = order.Ticket.Quantity, BarCode = "", Stub = "", CertificateNO = "", OrderStatus = (int)OrderDetailsDataStatus.NoPay, CreateTime = DateTime.Now, ValidityDateStart = order.VisitDate.ToDataTime(), ValidityDateEnd = order.VisitDate.ToDataTime(), PrintCount = 0, QRcodeUrl = "", QRcode = "", Mobile = order.ContactPerson.Mobile, IDCard = tbl_Order.IDCard, Linkman = order.ContactPerson.Name, CanModify = ticketRule.CanModify, CanRefund = ticketRule.CanRefund }; UpdateOrderDetailRefundTimeAndModifyTime(order.VisitDate.ToDataTime(), tbl_Ticket, tbl_OrderDetail, ticketRule); //修改订单信息 tbl_Order.EnterpriseId = tbl_OrderDetail.EnterpriseId; tbl_Order.ScenicId = tbl_OrderDetail.ScenicId; tbl_Order.TicketName = tbl_OrderDetail.TicketName; tbl_Order.TotalAmount = tbl_Ticket.SalePrice * order.Ticket.Quantity; tbl_Order.BookCount = order.Ticket.Quantity; return(tbl_OrderDetail); }
/// <summary> /// 获取退票短信发送内容 /// </summary> /// <param name="orderDetail"></param> /// <param name="scenics"></param> /// <param name="templateUrl"></param> /// <returns></returns> private string GetRefundSendContent(Tbl_OrderDetail orderDetail, Tbl_Scenic scenics) { string showScName = scenics.SignName; if (string.IsNullOrEmpty(showScName)) { showScName = scenics.ScenicName; } if (showScName.Length > 7) { showScName = showScName.Substring(0, 7); } return(string.Format(AppSettingsConfig.RefundOrderInfoPath, showScName, orderDetail.TicketName, orderDetail.OrderNo, orderDetail.Quantity)); }
/// <summary> /// 更新票的日售票数 /// </summary> /// <param name="tickets"></param> /// <param name="orderDetails"></param> public void UpdateTicketBySellCount(Tbl_Ticket ticket, Tbl_OrderDetail orderDetail) { //日销售限额为空或者0 为不限制 if (ticket.StockCount.HasValue && ticket.StockCount.Value > 0) { if (ticket.LastUpdateTime.HasValue && ticket.LastUpdateTime.Value.Date == DateTime.Now.Date) { ticket.SellCount = ticket.SellCount.HasValue ? ticket.SellCount + orderDetail.Quantity : 1; } ticket.LastUpdateTime = DateTime.Now; ticket.SellCount = 1; _ticketRepository.Update(ticket); } }
public void Update(Tbl_OrderDetail tbl_OrderDetail) { if (tbl_OrderDetail == null) { return; } var model = _noticeOrderConsumedRepository.FirstOrDefault(a => a.OrderDetailNumber == tbl_OrderDetail.Number); if (model != null) { model.IsTaken = true; model.UseDate = DateTime.Now.Date; _noticeOrderConsumedRepository.Update(model); } }
private bool Send(string mobile, List <Tbl_Scenic> tbl_Scenics, Tbl_OrderDetail detail) { var templateUrl = CreateTemplate(detail, tbl_Scenics); var sendContent = GetSendContent(detail, tbl_Scenics, templateUrl); var status = SesHelper.Send(mobile, sendContent); if (status) { //短信发送成功,更改景区短信额度 _scenicService.UpdateSmsCount(detail.ScenicId); _orderDetailService.UpdataForEticektSendQuantity(detail.Number); } AddSms(detail, mobile, sendContent, status); return(status); }
/// <summary> /// 获取短信发送内容 /// </summary> /// <param name="orderDetail"></param> /// <param name="scenics"></param> /// <param name="templateUrl"></param> /// <returns></returns> private string GetSendContent(Tbl_OrderDetail orderDetail, List <Tbl_Scenic> scenics, string templateUrl) { var scenicEnt = scenics.FirstOrDefault(o => o.ScenicId == orderDetail.ScenicId && (o.DataStatus & 1) == 0); string showScName = scenicEnt.SignName; if (string.IsNullOrEmpty(showScName)) { showScName = scenicEnt.ScenicName; } if (showScName.Length > 7) { showScName = showScName.Substring(0, 7); } return(string.Format(AppSettingsConfig.ProductOrderInfoPath, showScName, templateUrl)); }
/// <summary> /// 更新票的日售票数 /// </summary> /// <param name="orderDetails"></param> public void UpdateTicketBySellCount(Tbl_OrderDetail tbl_OrderDetail) { var tbl_Ticket = _ticketRepository.FirstOrDefault(a => a.TicketId == tbl_OrderDetail.TicketId); if (tbl_Ticket != null) { int?selCount = 0; if (tbl_Ticket.SellCount > tbl_OrderDetail.Quantity) { selCount = tbl_Ticket.SellCount - tbl_OrderDetail.Quantity; } tbl_Ticket.SellCount = tbl_Ticket.SellCount.HasValue ? selCount : 0; _ticketRepository.Update(tbl_Ticket); } }
/// <summary> /// 添加订单消费通知 /// </summary> /// <param name="tbl_Order"></param> /// <param name="tbl_OrderDetail"></param> /// <param name="business"></param> public void Add(Tbl_Order tbl_Order, Tbl_OrderDetail tbl_OrderDetail, Tbl_OTABusiness business) { var tbl_NoticeOrderConsumed = new Tbl_NoticeOrderConsumed { ScenicId = tbl_Order.ScenicId, IdentityKey = business.IdentityKey, OrderNo = tbl_Order.OrderNo, OtaOrderId = tbl_Order.OTAOrderNo, OrderDetailNumber = tbl_OrderDetail.Number, Count = tbl_OrderDetail.Quantity, IsTaken = false, RunCount = 0, CreateTime = DateTime.Now }; _noticeOrderConsumedRepository.Add(tbl_NoticeOrderConsumed); }
/// <summary> /// 更改订单支付状态和可退款时间和可修改时间 /// </summary> /// <param name="tbl_Order"></param> /// <param name="tbl_OrderDetails"></param> public void UpdateOrder(Tbl_Order tbl_Order, Tbl_OrderDetail tbl_OrderDetail) { //更改订单状态 tbl_Order.PayTime = DateTime.Now; tbl_Order.OrderStatus = (int)OrderDataStatus.Success; //更改可修改时间 tbl_Order.CanModify = tbl_OrderDetail.CanModify; if (tbl_Order.CanModify) { tbl_Order.CanModifyTime = tbl_OrderDetail.CanModifyTime; } //更改可退款时间 tbl_Order.CanRefund = tbl_OrderDetail.CanRefund; if (tbl_Order.CanRefund) { tbl_Order.CanRefundTime = tbl_OrderDetail.CanRefundTime; } }
/// <summary> /// 将发送结果插入数据库 /// </summary> /// <param name="orderDetail">订单详情</param> /// <param name="mobile">手机号码</param> /// <param name="content">发生内容</param> /// <param name="SendStatus">短信发送是否成功状态</param> private void AddSms(Tbl_OrderDetail orderDetail, string mobile, string content, bool SendStatus) { var sms = new Tbl_Sms { OrderDtlID = orderDetail.OrderDetailId, EnterpriseId = orderDetail.EnterpriseId, ScenicId = orderDetail.ScenicId, OrderNo = orderDetail.OrderNo, SmsTmeplateId = 0, Mobile = mobile, SmsContent = content, SendResult = SendStatus ? "发送成功" : "发送失败", OrderId = 1, DataStatus = SendStatus ? 1 : 0, CreateTime = DateTime.Now }; _smsRepository.Add(sms); }
/// <summary> /// 添加订单详情 余额支付 /// </summary> /// <param name="order"></param> /// <param name="tbl_Order"></param> /// <returns></returns> public Tbl_OrderDetail AddForBalancePay(Tbl_Order tbl_Order, Tbl_Ticket tbl_Ticket) { if (tbl_Ticket == null) { throw new SimplePromptException("门票未找到"); } Tbl_OrderDetail tbl_OrderDetail = new Tbl_OrderDetail { Number = Guid.NewGuid(), OrderNo = tbl_Order.OrderNo, OrderType = tbl_Order.OrderType, SellerId = 0, SellerType = 1, OtaOrderDetailId = 0, OrderSource = 1, TicketSource = 1, TicketCategory = 1, UsedQuantity = 0, TicketId = tbl_Ticket.TicketId, TicketName = tbl_Ticket.TicketName, Price = tbl_Ticket.SalePrice, Quantity = tbl_Order.BookCount, BarCode = "", Stub = "", CertificateNO = "", OrderStatus = (int)OrderDetailStatusType.Success, CreateTime = DateTime.Now, ValidityDateStart = tbl_Order.ValidityDateStart, ValidityDateEnd = tbl_Order.ValidityDateEnd, QRcodeUrl = "", QRcode = "", Mobile = tbl_Order.Mobile, IDCard = "", Linkman = tbl_Order.Linkman, BuyUserId = tbl_Order.BuyUserId, CanModify = true, CanRefund = true, }; _orderDetailRepository.Add(tbl_OrderDetail); return(tbl_OrderDetail); }
/// <summary> /// 添加订单消费通知 /// </summary> /// <param name="tbl_Order"></param> /// <param name="tbl_OrderDetail"></param> /// <param name="business"></param> public void Add(Tbl_Order tbl_Order, Tbl_OrderDetail tbl_OrderDetail, Tbl_OTABusiness business) { var tbl_NoticeOrderConsumed = new Tbl_NoticeOrderConsumed { SequenceId = DateTime.Now.ToString("yyyyMMdd") + Guid.NewGuid().ToString("N"), ScenicId = tbl_Order.ScenicId, IdentityKey = business.IdentityKey, OrderNo = tbl_Order.OrderNo, OtaOrderId = tbl_Order.OTAOrderNo, OrderDetailNumber = tbl_OrderDetail.Number, OtaOrderDetailId = tbl_OrderDetail.OtaOrderDetailId, Count = tbl_OrderDetail.Quantity, IsTaken = false, RunCount = 0, CreateTime = DateTime.Now }; _noticeOrderConsumedRepository.Add(tbl_NoticeOrderConsumed); }
/// <summary> /// 添加退款记录 /// </summary> /// <param name="tbl_OrderDetail"></param> public Tbl_RefundDetail Add(Tbl_OrderDetail tbl_OrderDetail) { Tbl_RefundDetail tbl_RefundDetail = new Tbl_RefundDetail { OrderNo = tbl_OrderDetail.OrderNo, EnterpriseId = tbl_OrderDetail.EnterpriseId, ScenicId = tbl_OrderDetail.ScenicId, SellerId = tbl_OrderDetail.SellerId, SellerType = tbl_OrderDetail.SellerType, TicketSource = tbl_OrderDetail.TicketSource, TicketCategory = tbl_OrderDetail.TicketCategory, UsedQuantity = tbl_OrderDetail.UsedQuantity, TicketId = tbl_OrderDetail.TicketId, TicketName = tbl_OrderDetail.TicketName, Quantity = tbl_OrderDetail.Quantity, Price = tbl_OrderDetail.Price, BarCode = tbl_OrderDetail.BarCode, Stub = tbl_OrderDetail.Stub, CertificateNO = tbl_OrderDetail.CertificateNO, WindowId = tbl_OrderDetail.WindowId, IDCard = tbl_OrderDetail.IDCard, Linkman = tbl_OrderDetail.Linkman, Mobile = tbl_OrderDetail.Mobile, RefundStatus = 0,//退款状态 RefundQuantity = tbl_OrderDetail.Quantity, RefundFee = 0, RefundTotalAmount = (tbl_OrderDetail.Price * tbl_OrderDetail.Quantity), RefundSummary = "", OrderTime = tbl_OrderDetail.CreateTime, ValidityDateStart = tbl_OrderDetail.ValidityDateStart, ValidityDateEnd = tbl_OrderDetail.ValidityDateEnd, PrintCount = tbl_OrderDetail.PrintCount, Qrcode = tbl_OrderDetail.QRcode, QrcodeUrl = tbl_OrderDetail.QRcodeUrl, OrderDetailId = tbl_OrderDetail.OrderDetailId, CreateTime = DateTime.Now, CreateUserId = 0 }; _refundDetailRepository.Add(tbl_RefundDetail); return(tbl_RefundDetail); }
/// <summary> /// 将发送结果插入数据库 /// </summary> /// <param name="orderDetail">订单详情</param> /// <param name="mobile">手机号码</param> /// <param name="sendResult">结果</param> private void AddSms(Tbl_OrderDetail orderDetail, string mobile, string sendResult) { var sms = new Tbl_Sms { OrderDtlID = orderDetail.OrderDetailId, EnterpriseId = orderDetail.EnterpriseId, ScenicId = orderDetail.ScenicId, OrderNo = orderDetail.OrderNo, SmsTmeplateId = 0, Mobile = mobile, SmsContent = "", SendResult = sendResult, OrderId = 1, DataStatus = 0, CreateTime = DateTime.Now }; _smsRepository.Add(sms); }
/// <summary> /// 二维码支付,生成验票信息,自动激活 /// </summary> /// <param name="order"></param> /// <param name="orderDetails"></param> /// <returns></returns> public Tbl_Ticket_Testing AddTicketTesting(Tbl_Order order, Tbl_OrderDetail orderDetail) { orderDetail.OrderStatus = (int)OrderDetailsDataStatus.Success; if (orderDetail.TicketCategory != 1) { //生成凭证号 orderDetail.CertificateNO = OrderHelper.GetCertificateNo(); //二维码订单支付,生成二维码串,自动激活 orderDetail.OrderStatus = (int)OrderDetailsDataStatus.Activate; //生成二维码串 orderDetail.QRcode = OrderHelper.GenerateQRCode(); //生成一张二维码图片,返回图片地址 string imgpath = string.Empty; //OrderHelper.CreateCode_Simple(orderDetail.QRcode, out imgpath); orderDetail.QRcodeUrl = imgpath; //二维码支付,生成验票信息,自动激活 Tbl_Ticket_Testing tbl_Ticket_Testing = new Tbl_Ticket_Testing { OrderDetailNumber = orderDetail.Number, OrderDetailId = orderDetail.OrderDetailId, OrderNo = orderDetail.OrderNo, EnterpriseId = orderDetail.EnterpriseId, ScenicId = orderDetail.ScenicId, TicketCategory = orderDetail.TicketCategory, TicketId = orderDetail.TicketId, TicketName = orderDetail.TicketName, BarCode = orderDetail.BarCode, CertificateNO = orderDetail.CertificateNO, QRcode = orderDetail.QRcode, DataStatus = 1, Quantity = orderDetail.Quantity, IDCard = orderDetail.IDCard }; return(tbl_Ticket_Testing); } return(null); }
/// <summary> /// 添加退款记录 /// </summary> /// <param name="tbl_OrderDetail"></param> public Tbl_OrderRefundDetail AddForTicket(Tbl_OrderDetail tbl_OrderDetail) { Tbl_OrderRefundDetail tbl_OrderRefundDetail = new Tbl_OrderRefundDetail { OrderRefundNo = OrderHelper.GenerateOrderNo(), OrderDetailId = tbl_OrderDetail.OrderDetailId, OrderNo = tbl_OrderDetail.OrderNo, Quantity = tbl_OrderDetail.Quantity, Price = tbl_OrderDetail.Price, RefundStatus = (int)OrderRefundType.Success, RefundQuantity = tbl_OrderDetail.Quantity, RefundFee = 0, RefundTotalAmount = (tbl_OrderDetail.Price * tbl_OrderDetail.Quantity), RefundSummary = "", OrderTime = tbl_OrderDetail.CreateTime, CreateTime = DateTime.Now, }; _orderRefundDetailRepository.Add(tbl_OrderRefundDetail); return(tbl_OrderRefundDetail); }
/// <summary> /// 充值 /// </summary> /// <param name="tbl_Order"></param> /// <returns></returns> public Tbl_OrderDetail AddForRecharge(Tbl_Order tbl_Order) { Tbl_OrderDetail tbl_OrderDetail = new Tbl_OrderDetail { Number = Guid.NewGuid(), OrderNo = tbl_Order.OrderNo, OrderType = tbl_Order.OrderType, SellerId = 0, SellerType = 1, OtaOrderDetailId = 0, OrderSource = 1, TicketSource = 1, TicketCategory = 1, UsedQuantity = 0, TicketId = 0, TicketName = tbl_Order.TicketName, Price = tbl_Order.TotalAmount, Quantity = tbl_Order.BookCount, BarCode = "", Stub = "", CertificateNO = "", OrderStatus = (int)OrderDetailStatusType.NoPay, CreateTime = DateTime.Now, ValidityDateStart = tbl_Order.ValidityDateStart, ValidityDateEnd = tbl_Order.ValidityDateEnd, QRcodeUrl = "", QRcode = "", Mobile = tbl_Order.Mobile, IDCard = "", Linkman = tbl_Order.Linkman, BuyUserId = tbl_Order.BuyUserId, CanModify = true, CanRefund = true, }; _orderDetailRepository.Add(tbl_OrderDetail); return(tbl_OrderDetail); }
public void GetOrderDetailsDataStatus(Tbl_OrderDetail tbl_OrderDetail, OrderQueryTicketInfo orderQueryTicketInfo) { if (tbl_OrderDetail.OrderStatus == (int)OrderDetailsDataStatus.Success || tbl_OrderDetail.OrderStatus == (int)OrderDetailsDataStatus.Activate) { orderQueryTicketInfo.Status = "OREDER_SUCCESS"; //已支付未消费 orderQueryTicketInfo.OrderStatus = (int)TicketOrderStatus.Success; } else if (tbl_OrderDetail.OrderStatus == (int)OrderDetailsDataStatus.Canncel || tbl_OrderDetail.OrderStatus == (int)OrderDetailsDataStatus.Refund) { orderQueryTicketInfo.Status = "OREDER_CANCEL";//已取消 orderQueryTicketInfo.OrderStatus = (int)TicketOrderStatus.Canncel; } else if (tbl_OrderDetail.OrderStatus == (int)OrderDetailsDataStatus.Consume || tbl_OrderDetail.OrderStatus == (int)OrderDetailsDataStatus.IsTaken) { orderQueryTicketInfo.Status = "OREDER_CONSUMED";//已消费 orderQueryTicketInfo.OrderStatus = (int)TicketOrderStatus.Consume; } else if (tbl_OrderDetail.CanRefundTime < DateTime.Now.Date) { orderQueryTicketInfo.Status = "OREDER_OVERDUE";//已过期 orderQueryTicketInfo.OrderStatus = (int)TicketOrderStatus.Expired; } }
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)); }
/// <summary> /// 修改订单状态--退款 /// </summary> /// <param name="tbl_Order"></param> public void UpdateForRefund(Tbl_OrderDetail tbl_OrderDetail) { tbl_OrderDetail.OrderStatus = (int)OrderDetailStatusType.Refund; tbl_OrderDetail.CancelTime = DateTime.Now; _orderDetailRepository.Update(tbl_OrderDetail); }
public void Add(Tbl_OrderDetail tbl_OrderDetail) { _orderDetailRepository.Add(tbl_OrderDetail); }
/// <summary> /// 更新订单详情的可退款时间和可修改时间 /// </summary> /// <param name="order"></param> /// <param name="ticket"></param> /// <param name="tbl_OrderDetail"></param> private static void UpdateOrderDetailRefundTimeAndModifyTime(DateTime visitDate, Tbl_Ticket ticket, Tbl_OrderDetail tbl_OrderDetail, Tbl_TicketRule ticketRule) { //是否支持退款 if (ticketRule.CanRefund) { int refundDay = ticketRule.RefundDay == null ? 0 : ticketRule.RefundDay.Value; int refundHour = ticketRule.RefundHour == null ? 0 : ticketRule.RefundHour.Value; int refundMinute = ticketRule.RefundMinute == null ? 0 : ticketRule.RefundMinute.Value; if (ticketRule.IsAnytimeRefund)//随时退 { tbl_OrderDetail.CanRefundTime = null; } else { var canRefundTime = visitDate.Date.AddDays(1).AddSeconds(-1); if (refundDay == 0 && refundHour == 0 && refundMinute == 0) { tbl_OrderDetail.CanRefundTime = canRefundTime; } else { canRefundTime = canRefundTime.AddDays(refundDay); if (refundDay >= 0) { canRefundTime = canRefundTime.AddHours(refundHour); canRefundTime = canRefundTime.AddMinutes(refundMinute); } else { canRefundTime = canRefundTime.AddHours(-refundHour); canRefundTime = canRefundTime.AddMinutes(-refundMinute); } tbl_OrderDetail.CanRefundTime = canRefundTime; } } } //是否支持修改已支付订单 if (ticketRule.CanModify) { int modifyDay = ticketRule.ModifyDay == null ? 0 : ticketRule.ModifyDay.Value; int modifyHour = ticketRule.ModifyHour == null ? 0 : ticketRule.ModifyHour.Value; int modifyMinute = ticketRule.ModifyMinute == null ? 0 : ticketRule.ModifyMinute.Value; if (modifyDay == 0 && modifyHour == 0 && modifyMinute == 0) { tbl_OrderDetail.CanModifyTime = null; } else { var canModifyTime = visitDate.AddDays(modifyDay); if (modifyDay >= 0) { canModifyTime = canModifyTime.AddHours(modifyHour); canModifyTime = canModifyTime.AddMinutes(modifyMinute); } else { canModifyTime = canModifyTime.AddHours(-modifyHour); canModifyTime = canModifyTime.AddMinutes(-modifyMinute); } tbl_OrderDetail.CanModifyTime = canModifyTime; } } //延时验票时间 double delayCheckMinutes = Convert.ToDouble(ticketRule.DelayCheck); tbl_OrderDetail.DelayCheckTime = tbl_OrderDetail.CreateTime.AddMinutes(delayCheckMinutes); }
/// <summary> /// 创建订单详情 - 二维码票 /// </summary> /// <param name="order"></param> /// <param name="tbl_Order"></param> /// <returns></returns> private List <Tbl_OrderDetail> addQrCodeTicketOrderDetail(OrderInfo order, Tbl_Order tbl_Order) { List <Tbl_OrderDetail> orderDetails = new List <Tbl_OrderDetail>(); string ticketNames = string.Empty; decimal TotalMoney = 0; int TotalCount = 0; //企业Id int EnterpriseID = 0; int ScenicID = 0; foreach (var te in order.TicketList) { var ticket = _ticketService.GetTicket(order.VisitDate.ToDataTime(), te.ProductId); var ticketRule = _ticketRuleRepository.FirstOrDefault(a => a.Id == ticket.RuleId); //二维码票: 每种门票 一个订单详情,多个数量 Tbl_OrderDetail tbl_OrderDetail = new Tbl_OrderDetail { Number = Guid.NewGuid(), OrderNo = tbl_Order.OrderNo, EnterpriseId = ticket.EnterpriseId, ScenicId = ticket.ScenicId, WindowId = 0, SellerId = 0, SellerType = 1, OtaOrderDetailId = 0, OrderSource = (int)OrderSource.OTA, TicketSource = (int)TicketSourceStatus.Ota, TicketCategory = (int)TicketCategoryStatus.QrCodeElectronTicket, UsedQuantity = 0, TicketId = te.ProductId, TicketName = ticket.TicketName, Price = ticket.SalePrice, SettlementPrice = ticket.SettlementPrice, Quantity = te.Quantity, BarCode = "", Stub = "", CertificateNO = "", OrderStatus = (int)OrderDetailsDataStatus.NoPay, CreateTime = DateTime.Now, ValidityDateStart = order.VisitDate.ToDataTime(), ValidityDateEnd = order.VisitDate.ToDataTime(), PrintCount = 0, QRcodeUrl = "", QRcode = "", Mobile = order.ContactPerson.Mobile, IDCard = tbl_Order.IDCard, Linkman = order.ContactPerson.Name, CanModify = ticketRule.CanModify, CanRefund = ticketRule.CanRefund }; UpdateOrderDetailRefundTimeAndModifyTime(order.VisitDate.ToDataTime(), ticket, tbl_OrderDetail, ticketRule); orderDetails.Add(tbl_OrderDetail); //有效的门票信息 EnterpriseID = ticket.EnterpriseId; ScenicID = ticket.ScenicId; ticketNames += ticket.TicketName + ","; TotalMoney += (ticket.SalePrice * te.Quantity); TotalCount += te.Quantity; } ticketNames = ticketNames.Substring(0, ticketNames.Length - 1); if (ticketNames.Length > 50) { ticketNames = ticketNames.Substring(0, 50); } tbl_Order.EnterpriseId = EnterpriseID; tbl_Order.ScenicId = ScenicID; tbl_Order.TicketName = ticketNames; tbl_Order.TotalAmount = TotalMoney; tbl_Order.BookCount = TotalCount; return(orderDetails); }
/// <summary> /// 更新订单详情的状态:为已退款 /// </summary> /// <param name="tbl_OrderDetail"></param> public void UpdateOrderDetailForRefund(Tbl_OrderDetail tbl_OrderDetail) { tbl_OrderDetail.OrderStatus = (int)OrderDetailsDataStatus.Refund; _orderDetailRepository.Update(tbl_OrderDetail); }
/// <summary> /// 修改--小径平台 /// </summary> /// <param name="orderDeail"></param> /// <param name="item"></param> public void XJ_UpdateOrderDetail(Tbl_OrderDetail orderDeail, XJ_ProductItem item) { orderDeail.ValidityDateStart = item.StartDate; orderDeail.ValidityDateEnd = item.EndDate; _orderDetailRepository.Update(orderDeail); }
/// <summary> /// 创建订单详情 - 二维码票 /// </summary> /// <param name="order"></param> /// <param name="tbl_Order"></param> /// <returns></returns> public List <Tbl_OrderDetail> AddOrderDetailForQrCodeNoPay(OrderInfoModel order, Tbl_Order tbl_Order) { if (order.TicketCategory == 1) { return(new List <Tbl_OrderDetail>()); } List <Tbl_OrderDetail> orderDetails = new List <Tbl_OrderDetail>(); string ticketNames = string.Empty; decimal TotalMoney = 0; int TotalCount = 0; //企业Id int EnterpriseID = 0; int ScenicID = 0; foreach (var te in order.TicketItem) { var ticket = _ticketService.GetTicket(order.ValidityDate, te.TicketId); var ticketRule = _ticketRuleRepository.FirstOrDefault(a => a.Id == ticket.RuleId); //二维码票: 每种门票 一个订单详情,多个数量 Tbl_OrderDetail tbl_OrderDetail = new Tbl_OrderDetail { Number = Guid.NewGuid(), OrderNo = tbl_Order.OrderNo, EnterpriseId = ticket.EnterpriseId, ScenicId = ticket.ScenicId, OrderType = tbl_Order.OrderType, WindowId = 0, SellerId = 0, SellerType = 1, OtaOrderDetailId = 0, OrderSource = (int)OrderSource.My, TicketSource = order.TicketSource, TicketCategory = order.TicketCategory, UsedQuantity = 0, TicketId = te.TicketId, TicketName = ticket.TicketName, Price = ticket.SalePrice, Quantity = te.BookCount, BarCode = "", Stub = "", CertificateNO = "", OrderStatus = (int)OrderDetailsDataStatus.NoPay, CreateTime = DateTime.Now, ValidityDateStart = order.ValidityDate, ValidityDateEnd = order.ValidityDate, PrintCount = 0, QRcodeUrl = "", QRcode = "", Mobile = order.Mobile, IDCard = "", Linkman = order.Linkman, CanModify = ticketRule.CanModify, CanRefund = ticketRule.CanRefund }; UpdateOrderDetailRefundTimeAndModifyTime(order.ValidityDate, ticket, tbl_OrderDetail, ticketRule); orderDetails.Add(tbl_OrderDetail); //有效的门票信息 EnterpriseID = ticket.EnterpriseId; ScenicID = ticket.ScenicId; ticketNames += ticket.TicketName + ","; TotalMoney += (ticket.SalePrice * te.BookCount); TotalCount += te.BookCount; } ticketNames = ticketNames.Substring(0, ticketNames.Length - 1); if (ticketNames.Length > 50) { ticketNames = ticketNames.Substring(0, 50); } tbl_Order.EnterpriseId = EnterpriseID; tbl_Order.ScenicId = ScenicID; tbl_Order.TicketName = ticketNames; tbl_Order.TotalAmount = TotalMoney; tbl_Order.BookCount = TotalCount; return(orderDetails); }