Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
 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, "差错退款");
     }
 }
Exemplo n.º 3
0
        /// <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());
        }
Exemplo n.º 4
0
 /// <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);
     }
 }