/// <summary> /// 申请退/废票 /// </summary> /// <param name="orderId">订单号</param> /// <param name="pnrCode">编码(小编码|大编码)</param> /// <param name="passengers">乘机人(乘机人id,以','隔开)</param> /// <param name="voyages">航段(航段id,以','隔开)</param> /// <param name="refundType">退票类型(当日作废:-1,升舱全退:0,自愿按客规退票:1,非自愿退票:2,特殊原因退票:3)</param> /// <param name="reason">退/废票原因</param> /// <param name="DelegageCancelPNR">是否委托平台取消编码</param> public string ApplyRefund(decimal orderId, string pnrCode, string passengers, string voyages, int refundType, string reason, bool DelegageCancelPNR, string filePath) { try { RefundOrScrapApplyformView applyformView = null; if (refundType == -1) { applyformView = new ScrapApplyformView(); } else { applyformView = new RefundApplyformView(); var view = applyformView as RefundApplyformView; view.RefundType = (RefundType)refundType; if (!string.IsNullOrEmpty(filePath) && (view.RefundType == RefundType.SpecialReason || view.RefundType == RefundType.Involuntary)) { var bytes = FileService.GetFileBytes(filePath); Thumbnail thumbnail = new Thumbnail(); view.ApplyAttachmentView = new List <ApplyAttachmentView>(); view.ApplyAttachmentView.Add(new ApplyAttachmentView { FilePath = filePath, Thumbnail = thumbnail.MakeThumb(100, bytes) }); //view.Thumbnail = thumbnail.MakeThumb(100, ""); } applyformView = view; } applyformView.PNR = getPNRPair(pnrCode); applyformView.Passengers = getPassengers(passengers); applyformView.Reason = reason; applyformView.DelegageCancelPNR = DelegageCancelPNR; foreach (var item in getRefundVoyages(voyages)) { applyformView.AddVoyage(item); } if (Session["NeedPlatformCancelPNR"] != null && Session["NeedPlatformCancelPNR"].ToString() == orderId.ToString()) { applyformView.NeedPlatfromCancelPNR = true; } var applyform = OrderProcessService.Apply(orderId, applyformView, CurrentUser, BasePage.OwnerOEMId) as RefundOrScrapApplyform; releaseLock(orderId); //if (applyform.Status == RefundApplyformStatus.AppliedForProvider && (applyform.Order.Source == OrderSource.ContentImport || applyform.Order.Source == OrderSource.CodeImport || applyform.Order.Source == OrderSource.InterfaceOrder)) //{ // var pnr = CommandService.GetReservedPnr(applyformView.PNR, Guid.Empty); // if (!pnr.Success || pnr.Success && !pnr.Result.HasCanceled) // { // return "OK1"; // } //} return(OK); } catch (Exception ex) { return(ex.Message); } }
protected void btnSubmit_Click(object sender, EventArgs e) { try { decimal applyformId; if (decimal.TryParse(Request.QueryString["id"], out applyformId)) { RefundOrScrapApplyform applyform = ApplyformQueryService.QueryRefundOrScrapApplyform(applyformId); var remark = this.txtErrorRemork.Text; OrderProcessService.Apply(applyform.OrderId, new BalanceRefundApplyView(applyform.Flights.Select(f => f.OriginalFlight.Id), applyformId, remark), CurrentUser, OwnerOEMId); ReleaseLock(applyform.OrderId); RegisterScript(this, "alert('差错退款申请成功!');location.href='" + ReturnUrl + "'", true); } } catch (Exception ex) { ShowExceptionMessage(ex, "差错退款"); } }
/// <summary> /// 生成申请单 /// </summary> public string ProduceApplyform(Guid policyId, PolicyType policyType, string officeNo, decimal orderId, string source, int choise, bool needAUTH, bool IsUsePatPrice) { var applyformView = Session["ApplyformView"] as UpgradeApplyformView; MatchedPolicy matchedPolicy = MatchedPolicyCache.FirstOrDefault(p => p.Id == policyId); if (matchedPolicy == null) { throw new CustomException("政策选择超时"); } decimal newOrderId = OrderProcessService.Apply(orderId, applyformView, matchedPolicy, CurrentUser, BasePage.OwnerOEMId); FlightQuery.ClearFlightQuerySessions(); if (needAUTH) { authorize(applyformView.NewPNR, officeNo, source, BasePage.OwnerOEMId); } BasePage.ReleaseLock(orderId); return(newOrderId.ToString()); }
/// <summary> /// 申请改期 /// </summary> /// <param name="orderId">订单号</param> /// <param name="pnrCode">编码(小编码|大编码)</param> /// <param name="passengers">乘机人(乘机人id,以','隔开)</param> /// <param name="voyages">航段(航段id|新航班号|新航班日期,以','隔开)</param> /// <param name="remark">改期备注</param> public string ApplyPostpone(decimal orderId, string pnrCode, string passengers, string voyages, string remark, string carrair) { try { var applyformView = new PostponeApplyformView() { PNR = getPNRPair(pnrCode), Passengers = getPassengers(passengers), Reason = remark }; var flightChangeLimit = SystemDictionaryService.Query(SystemDictionaryType.FlightChangeLimit); var limit = LimitItem.Parse(flightChangeLimit); foreach (var item in getPostponeVoyages(voyages)) { bool isTodayFlight = DateTime.Today == item.NewFlightDate.Date; foreach (LimitItem l in limit) { if (carrair.ToUpper() != l.Carrair.ToUpper()) { continue; } if (item.NewFlightDate >= l.LimitFrom && item.NewFlightDate <= l.LimitTo && (!isTodayFlight || !l.ToTodayEnable)) { var aline = FoundationService.Airlines.FirstOrDefault(p => p.Code.Value == l.Carrair); throw new CustomException("由于[" + aline.ShortName + "]原因,该客票已被航空公司限制改期,无法改期,请让乘机人自行致电航空公司或到航空公司直营柜台办理改期"); } } applyformView.AddItem(item); } var applyform = OrderProcessService.Apply(orderId, applyformView, CurrentUser, BasePage.OwnerOEMId) as PostponeApplyform; releaseLock(orderId); return(OK); } catch (Exception ex) { return(ex.Message); } }