示例#1
0
        internal static void ProcessOrderRefundment(RefundFailedRecord refundInfo)
        {
            var refundBill = DistributionQueryService.QueryNormalRefundBill(refundInfo.ApplyformId);

            if (refundBill != null)
            {
                var refundResults = Refund(refundBill, refundInfo.BusinessType);
                if (refundResults.Any(item => item.Success))
                {
                    var purchaserSucceed = refundBill.Purchaser.Success;
                    DistributionProcessService.NormalRefundSuccess(refundBill, refundResults);
                    using (var command = Order.Repository.Factory.CreateCommand()) {
                        command.BeginTransaction();
                        try {
                            var distributionRepository = Order.Repository.Factory.CreateDistributionRepository(command);
                            distributionRepository.UpdateRefundBillForRefundSuccess(refundBill);
                            command.CommitTransaction();
                        } catch (Exception ex) {
                            command.RollbackTransaction();
                            LogService.SaveExceptionLog(ex, "交易分润退款");
                            throw;
                        }
                    }
                    if (!purchaserSucceed && refundBill.Purchaser.Success)
                    {
                        var applyform = ApplyformQueryService.QueryRefundOrScrapApplyform(refundInfo.ApplyformId);
                        var notifier  = new Order.Notify.RefundApplyformNotifier(applyform);
                        notifier.RefundSuccess();
                    }
                }
            }
        }
示例#2
0
 protected void Page_Load(object sender, EventArgs e)
 {
     RegisterOEMSkins("form.css");
     if (!IsPostBack)
     {
         hfdServicePhone.Value = CurrenContract.ServicePhone;
         lblScrapPhone.Text    = CurrenContract.ScrapPhone;
         SetBackButton();
         decimal applyformId;
         if (decimal.TryParse(Request.QueryString["id"], out applyformId))
         {
             RefundOrScrapApplyform applyform = ApplyformQueryService.QueryRefundOrScrapApplyform(applyformId);
             string lockErrorMsg;
             if (Lock(applyformId, LockRole.Provider, "退票处理", out lockErrorMsg))
             {
                 if (applyform == null)
                 {
                     ShowErrorMessage("退/废票申请单不存在");
                 }
                 else
                 {
                     IsSpeical          = !applyform.Order.IsThirdRelation && applyform.IsSpecial;
                     RequireSeparatePNR = applyform.RequireSeparatePNR;
                     Carrier            = applyform.Flights.First().OriginalFlight.Carrier.Code;
                     BindData(applyform);
                 }
             }
             else
             {
                 ShowErrorMessage("锁定申请单失败。原因:" + lockErrorMsg);
             }
         }
     }
 }
示例#3
0
        protected void btnConfirm_Click(object sender, EventArgs e)
        {
            decimal attachmentId;
            string  id = Request.QueryString["AttachmentId"];

            if (decimal.TryParse(id, out attachmentId))
            {
                try
                {
                    string filePath = FileService.Upload(fileAttachment, "RefundApplyformView");
                    List <ApplyAttachmentView> list = new List <ApplyAttachmentView>();
                    var       bytes     = ChinaPay.B3B.Service.FileService.GetFileBytes(filePath);
                    Thumbnail thumbnail = new Thumbnail();
                    list.Add(new ApplyAttachmentView
                    {
                        Id          = Guid.NewGuid(),
                        ApplyformId = attachmentId,
                        FilePath    = filePath,
                        Thumbnail   = thumbnail.MakeThumb(100, bytes),
                        Time        = DateTime.Now
                    });
                    ApplyformQueryService.AddApplyAttachmentView(list, CurrentUser.UserName);
                    Response.Redirect("ProcessRefund.aspx?id=" + id);
                }
                catch (Exception ex)
                {
                    BasePage.ShowExceptionMessage(this, ex, "上传");
                }
            }
        }
示例#4
0
 void initLazyLoaders(bool newOrder)
 {
     _OemInfoLoader = new LazyLoader <OEMInfo>(() => OEMService.QueryOEMById(OEMID.Value));
     if (newOrder)
     {
         _applyformLoader    = new EnumerableLazyLoader <BaseApplyform>();
         _operationLoader    = new EnumerableLazyLoader <Log.Domain.OrderLog>();
         _coordinationLoader = new EnumerableLazyLoader <Coordination>();
     }
     else
     {
         _applyformLoader = new EnumerableLazyLoader <BaseApplyform>(() => {
             return(ApplyformQueryService.QueryApplyforms(this.Id));
         });
         _operationLoader = new EnumerableLazyLoader <Log.Domain.OrderLog>(() => {
             return(LogService.QueryOrderLog(this.Id));
         });
         _coordinationLoader = new EnumerableLazyLoader <Coordination>(() => {
             return(CoordinationService.QueryOrderCoordinations(this.Id));
         });
     }
     _associateOrderLoader   = new LazyLoader <Order>();
     _distributionBillLoader = new LazyLoader <Service.Distribution.Domain.OrderBill>(() => {
         return(DistributionQueryService.QueryOrderBill(this.Id));
     });
 }
示例#5
0
 protected void btnAgree_Click(object sender, EventArgs e)
 {
     try
     {
         decimal applyformId;
         if (decimal.TryParse(Request.QueryString["id"], out applyformId))
         {
             CheckPNR();
             RefundOrScrapApplyform      applyform = ApplyformQueryService.QueryRefundOrScrapApplyform(applyformId);
             IEnumerable <RefundFeeView> feeInfos  = CollectFeeInfo();
             if (!feeInfos.Any())
             {
                 throw new Exception("费率输入不正确!");
             }
             string pnr  = txtPNR.Text.Trim();
             string bpnr = txtBPNR.Text.Trim();
             var    refundProcessView = new RefundProcessView
             {
                 NewPNR = new PNRPair(pnr, bpnr),
                 Items  = feeInfos
             };
             ApplyformProcessService.AgreeRefundOrScrapByProvider(applyformId, refundProcessView, CurrentUser.UserName, CurrentUser.Name);
             ReleaseLock(applyformId);
             RegisterScript(this, "alert('同意退废票成功');location.href='/OrderModule/Provide/ChangeProcessList.aspx'");
         }
     }
     catch (Exception ex)
     {
         ShowExceptionMessage(ex, "同意退/废票");
     }
 }
示例#6
0
 protected void Page_Load(object sender, EventArgs e)
 {
     RegisterOEMSkins("form.css");
     if (!IsPostBack)
     {
         setBackButton();
         decimal applyformId;
         if (decimal.TryParse(Request.QueryString["id"], out applyformId))
         {
             string lockErrorMsg;
             if (Lock(applyformId, LockRole.Provider, "退款", out lockErrorMsg))
             {
                 BalanceRefundApplyform applyform = ApplyformQueryService.QueryBalanceRefundApplyform(applyformId);
                 if (applyform == null)
                 {
                     showErrorMessage("差额退款申请单不存在");
                 }
                 else
                 {
                     bindData(applyform);
                 }
             }
             else
             {
                 showErrorMessage("锁定申请单失败。原因:" + lockErrorMsg);
             }
         }
         else
         {
             showErrorMessage("参数错误");
         }
     }
 }
示例#7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            RegisterOEMSkins("form.css");

            if (!IsPostBack)
            {
                setBackButton();
                decimal applyformId;
                if (decimal.TryParse(Request.QueryString["id"], out applyformId))
                {
                    RefundOrScrapApplyform applyform = ApplyformQueryService.QueryRefundOrScrapApplyform(applyformId);
                    if (applyform == null)
                    {
                        showErrorMessage("退/废票申请单不存在");
                    }
                    else
                    {
                        bindData(applyform);
                    }
                }
                else
                {
                    showErrorMessage("参数错误");
                }
            }
        }
 private void QueryApplyForm(Pagination pagination)
 {
     try {
         List <ApplyformListView> forms = ApplyformQueryService.ProviderQueryBalanceRefundForReturnMoney(getCondition(), pagination).ToList();
         var lockInfos = LockService.Query(forms.Select(form => form.ApplyformId.ToString())).ToList();
         dataList.DataSource = forms.Select(form => {
             LockInfo lockInfo = lockInfos.FirstOrDefault(l => l.Key == form.ApplyformId.ToString());
             return(new
             {
                 form.ApplyformId,
                 PNR = form.OriginalPNR.ToListString(),
                 AirportPair = form.Flights.Join("<br />",
                                                 f =>
                                                 string.Format(
                                                     "{0}-{1}",
                                                     f.DepartureCity,
                                                     f.ArrivalCity)),
                 FlightInfo = form.Flights.Join("<br />",
                                                f => string.Format(
                                                    "{0}{1}<br />{2} / {3}",
                                                    f.Carrier,
                                                    f.FlightNo,
                                                    string.IsNullOrEmpty(f.Bunk) ? "-" : f.Bunk,
                                                    f.Discount.HasValue ? (f.Discount.Value * 100).TrimInvaidZero() : string.Empty)),
                 TakeoffTime = form.Flights.Join("<br />",
                                                 f =>
                                                 f.TakeoffTime.ToString("yyyy-MM-dd<br />HH:mm")),
                 Passengers = string.Join("<br />", form.Passengers),
                 ApplyType = form.ApplyformType.GetDescription(),
                 ProcessStatus = GetProcessStatus(form),
                 AppliedTime =
                     form.AppliedTime.ToString("yyyy-MM-dd<br />HH:mm"),
                 form.ApplierAccount,
                 ProductType = form.ProductType.GetDescription(),
                 form.ApplyformType,
                 LockInfo = lockInfo == null
                                                                           ? string.Empty
                                                                           : lockInfo.Company ==
                            CurrentCompany.CompanyId
                                                                                 ? string.Format("{0}<br />{1}", lockInfo.Account, lockInfo.Name)
                                                                                 : string.Format("{0}<br />({1})", lockInfo.LockRole.GetDescription(), lockInfo.Account)
             });
         });
         dataList.DataBind();
         if (forms.Any())
         {
             pager.Visible = true;
             if (pagination.GetRowCount)
             {
                 pager.RowCount = pagination.RowCount;
             }
         }
         else
         {
             pager.Visible = false;
         }
     } catch (Exception ex) {
         ShowExceptionMessage(ex, "查询");
     }
 }
示例#9
0
        private void payPostponeFee(decimal applyformId)
        {
            PostponeApplyform postponeApplyform = ApplyformQueryService.QueryPostponeApplyform(applyformId);

            if (postponeApplyform == null)
            {
                showErrorMessage("改期申请单 [" + applyformId + "] 不存在");
            }
            else
            {
                flights = postponeApplyform.Flights.Select(f => f.NewFlight).ToList();
                string errorMessage;
                if (ApplyformProcessService.Payable(applyformId, out errorMessage))
                {
                    string lockErrorMsg;
                    if (Lock(applyformId, LockRole.Purchaser, "支付改期费", out lockErrorMsg))
                    {
                        bindApplyform(postponeApplyform);
                        bindPayTypes();
                    }
                    else
                    {
                        showErrorMessage("锁定改期申请单失败。原因:" + lockErrorMsg);
                    }
                }
                else
                {
                    showErrorMessage(errorMessage);
                }
            }
        }
示例#10
0
        protected void btnConfirm_Click(object sender, EventArgs e)
        {
            decimal attachmentId;
            string  id = Request.QueryString["id"];

            if (decimal.TryParse(id, out attachmentId))
            {
                try
                {
                    string filePath = FileService.Upload(fileAttachment, "RefundApplyformView", "(jpg)|(bmp)|(png)", 600 * 1024);
                    List <ApplyAttachmentView> list = new List <ApplyAttachmentView>();
                    var       bytes     = ChinaPay.B3B.Service.FileService.GetFileBytes(filePath);
                    Thumbnail thumbnail = new Thumbnail();
                    list.Add(new ApplyAttachmentView
                    {
                        Id          = Guid.NewGuid(),
                        ApplyformId = attachmentId,
                        FilePath    = filePath,
                        Thumbnail   = thumbnail.MakeThumb(100, bytes),
                        Time        = DateTime.Now
                    });
                    ApplyformQueryService.AddApplyAttachmentView(list, CurrentUser.UserName);
                    bindAttachment(attachmentId);
                    ShowMessage("上传成功");
                }
                catch (Exception ex)
                {
                    ShowExceptionMessage(ex, "上传");
                }
            }
        }
示例#11
0
        internal BalanceRefundApplyform(Order order, BalanceRefundApplyView applyView)
            : base(order, applyView)
        {
            initLazyLoaders();
            var applyform = ApplyformQueryService.QueryRefundOrScrapApplyform(applyView.AssociateApplyformId);

            if (applyform == null)
            {
                throw new ArgumentNullException("申请单信息不存在!");
            }
            if (applyform.HasBalanceRefund)
            {
                throw new CustomException("每个申请单只能申请一次差错退款!");
            }
            if (applyform.Status != RefundApplyformStatus.Refunded)
            {
                throw new CustomException("仅处理完成的申请单可以申请差额退款");
            }
            AssociateApplyformId = applyform.Id;
            ApplyRemark          = applyView.Reason;
            BalanceRefundStatus  = BalanceRefundProcessStatus.AppliedForPlatform;
            AppliedTime          = DateTime.Now;
            PurchaserName        = applyform.PurchaserName;
            PurchaserId          = applyform.PurchaserId;
            ProviderId           = applyform.ProviderId;
            ProviderName         = applyform.ProviderName;
            OriginalPNR          = applyform.OriginalPNR;
            _applyform           = applyform;
            IsInterior           = applyform.IsInterior;
        }
示例#12
0
 protected void btnReDeal_Click(object sender, EventArgs e)
 {
     try
     {
         decimal applyformId;
         if (decimal.TryParse(Request.QueryString["id"], out applyformId))
         {
             var applyform = ApplyformQueryService.QueryRefundOrScrapApplyform(applyformId);
             //特殊原因特殊退票 提交修改服务费
             if (applyform.IsSpecial && applyform is RefundApplyform && ((RefundApplyform)applyform).RefundType == RefundType.SpecialReason)
             {
                 ApplyformProcessService.ReRefund(applyformId, applyform.Flights.Select(f => new PlatformProcessRefundView
                 {
                     AirportPair   = new AirportPair(f.OriginalFlight.Departure.Code, f.OriginalFlight.Arrival.Code),
                     ServiceCharge = decimal.Parse(ChangedServiceCharge.Value)
                 }
                                                                                        ), ChangeServiceChargeReason.Text, CurrentUser.UserName);
             }
             else
             {
                 ApplyformProcessService.ReRefund(applyformId, CurrentUser.UserName);
             }
             ReleaseLock(applyformId);
             RegisterScript(this, "alert('重新退/废票成功!');location.href='" + ReturnUrl + "'", true);
         }
     }
     catch (Exception ex)
     {
         ShowExceptionMessage(ex, "重新退/废票");
     }
 }
示例#13
0
 protected void btnAgree_Click(object sender, EventArgs e)
 {
     try
     {
         decimal applyformId;
         if (decimal.TryParse(Request.QueryString["id"], out applyformId))
         {
             CheckPNR();
             RefundOrScrapApplyform applyform = ApplyformQueryService.QueryRefundOrScrapApplyform(applyformId);
             string pnr  = txtPNR.Text.Trim();
             string bpnr = txtBPNR.Text.Trim();
             var    refundProcessView = new RefundProcessView
             {
                 NewPNR = new PNRPair(pnr, bpnr)
             };
             ApplyformProcessService.AgreeRefundOrScrapByProvider(applyformId, refundProcessView, CurrentUser.UserName, CurrentUser.Name);
             ReleaseLock(applyformId);
             RegisterScript(this, "alert('同意退废票成功');location.href='" + ReturnUrl + "'");
         }
     }
     catch (Exception ex)
     {
         ShowExceptionMessage(ex, "同意废票");
     }
 }
示例#14
0
        private void bindAttachment(decimal applyformId)
        {
            var attachment = ApplyformQueryService.QueryApplyAttachmentView(applyformId);

            UserControl.OutPutImage outPutImage = LoadControl(ResolveUrl("~/UserControl/OutPutImage.ascx")) as UserControl.OutPutImage;
            outPutImage.ApplyAttachment  = attachment;
            outPutImage.IsPlatform       = true;
            outPutImage.ClientIDMode     = System.Web.UI.ClientIDMode.Static;
            outPutImage.EnableTheming    = false;
            outPutImage.ApplyformId      = applyformId;
            divApplyAttachment.InnerHtml = string.Format("<h3 class=\"titleBg\">附件</h3><div id=\"divOutPutImage\" class=\"clearfix\">{0}</div>", outPutImage.Binddata());
        }
示例#15
0
        private void bindApplyInfo(RefundOrScrapApplyform applyform, decimal applyformId)
        {
            BalanceRefundApplyform form = ApplyformQueryService.QueryBalanceRefundApplyform(applyformId);
            DateTime?submitTime         = form.RefundBill.TradeTime;
            string   remark             = form.RefundBill.Remark;
            var      InfoHTML           = new StringBuilder();

            InfoHTML.Append("<table><tr><th>提交时间</th><th>差错备注</th></tr>");
            InfoHTML.Append("<tr>");
            InfoHTML.AppendFormat("<td>{0}</td><td>{1}</td>", submitTime, remark);
            InfoHTML.Append("</table>");
            divApplication.InnerHtml = InfoHTML.ToString();
        }
示例#16
0
        public void OutPutApplyAttachment()
        {
            string applyAttachmentId = HttpContext.Current.Request.QueryString["ApplyAttachmentId"];

            if (!string.IsNullOrEmpty(applyAttachmentId))
            {
                Guid id = Guid.Parse(applyAttachmentId);
                ApplyAttachmentView apply = ApplyformQueryService.QueryApplyAttachmentView(id);
                if (apply != null)
                {
                    HttpContext.Current.Response.BinaryWrite(apply.Thumbnail);
                }
            }
        }
示例#17
0
        private void bindOrderLogs(decimal applyformId)
        {
            var applyform = ApplyformQueryService.QueryApplyform(applyformId);
            var orderRole = GetOrderRole(applyform.Order);
            var logs      = from item in Service.LogService.QueryApplyformLog(applyformId)
                            where item.IsVisible(orderRole, CurrentCompany.CompanyId)
                            select new
            {
                Keyword     = item.Keyword,
                OperateTime = item.Time.ToString("yyyy-MM-dd<br />HH:mm:ss"),
                Detail      = item.Content,
                Operator    = getOperator(item)
            };

            logContent.DataSource = logs;
            logContent.DataBind();
        }
示例#18
0
 protected void Page_Load(object sender, EventArgs e)
 {
     RegisterOEMSkins("form.css");
     if (!IsPostBack)
     {
         lblRefunPhone.Text = CurrenContract.RefundPhone;
         setBackButton();
         decimal applyformId;
         if (decimal.TryParse(Request.QueryString["id"], out applyformId))
         {
             RefundOrScrapApplyform applyform = ApplyformQueryService.QueryRefundOrScrapApplyform(applyformId);
             string lockErrorMsg;
             if (Lock(applyformId, LockRole.Provider, "退票处理", out lockErrorMsg))
             {
                 if (applyform == null)
                 {
                     showErrorMessage("退/废票申请单不存在");
                 }
                 else
                 {
                     var attachment = ApplyformQueryService.QueryApplyAttachmentView(applyform.Id);
                     if (attachment.Any())
                     {
                         ucOutPutImage.IsPlatform      = false;
                         ucOutPutImage.ApplyAttachment = attachment;
                     }
                     else
                     {
                         divApplyAttachment.Visible = false;
                     }
                     IsSpeical          = !applyform.Order.IsThirdRelation && applyform.IsSpecial;
                     RequireSeparatePNR = applyform.RequireSeparatePNR;
                     bindData(applyform);
                 }
             }
             else
             {
                 showErrorMessage("锁定申请单失败。原因:" + lockErrorMsg);
             }
         }
         else
         {
             showErrorMessage("参数错误");
         }
     }
 }
        private void bindAttachment(RefundOrScrapApplyform applyform)
        {
            RefundApplyform refundApplyform = applyform as RefundApplyform;

            if (refundApplyform != null && (refundApplyform.RefundType == RefundType.Involuntary || refundApplyform.RefundType == RefundType.SpecialReason))
            {
                var attachment = ApplyformQueryService.QueryApplyAttachmentView(refundApplyform.Id);
                UserControl.OutPutImage outPutImage = LoadControl(ResolveUrl("~/UserControl/OutPutImage.ascx")) as UserControl.OutPutImage;
                outPutImage.ApplyAttachment = attachment;
                outPutImage.IsPlatform      = refundApplyform.Status != RefundApplyformStatus.Refunded && refundApplyform.Status != RefundApplyformStatus.DeniedByProviderTreasurer && refundApplyform.Status != RefundApplyformStatus.Denied;
                outPutImage.ClientIDMode    = System.Web.UI.ClientIDMode.Static;
                outPutImage.EnableTheming   = false;
                outPutImage.ApplyformId     = refundApplyform.Id;
                string content = outPutImage.Binddata();
                divApplyAttachment.InnerHtml = string.IsNullOrEmpty(content) ? string.Empty : string.Format("<h3 class=\"titleBg\">附件</h3><div id=\"divOutPutImage\" class=\"clearfix\">{0}</div>", outPutImage.Binddata());
            }
        }
示例#20
0
        /// <summary>
        /// 支付改期手续费
        /// 在线方式支付
        /// </summary>
        /// <param name="postponeApplyformId">改期申请单号</param>
        /// <param name="bankInfo">银行信息</param>
        /// <param name="clientIP">客户端IP</param>
        /// <param name="operatorAccount">操作员账号</param>
        public static string OnlinePayPostponeFee(decimal postponeApplyformId, string bankInfo, string clientIP, string operatorAccount)
        {
            var applyform     = ApplyformQueryService.QueryPostponeApplyform(postponeApplyformId);
            var payAccount    = getPayAccountNo(applyform.PurchaserId);
            var bankInfoArray = bankInfo.Split('|');
            var channelId     = int.Parse(bankInfoArray[0]);
            var bankCode      = bankInfoArray[1];

            var postPoneRequest = new PayPostPoneRequestProcess(applyform.OrderId, postponeApplyformId,
                                                                Math.Abs(applyform.PayBill.Applier.Amount), payAccount,
                                                                applyform.PayBill.Tradement.PayeeAccount, "支付改期费",
                                                                applyform.OriginalPNR == null ? string.Empty : (applyform.OriginalPNR.PNR ?? applyform.OriginalPNR.BPNR),
                                                                PostponeApplyformPayType + "|" + payAccount + "|" + operatorAccount + "|",
                                                                channelId.ToString(), bankCode);

            postPoneRequest.Execute();
            return(postPoneRequest.PayUrl);
        }
示例#21
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, "差错退款");
     }
 }
示例#22
0
 protected void Page_Load(object sender, EventArgs e)
 {
     RegisterOEMSkins("form.css");
     if (!IsPostBack)
     {
         setBackButton();
         if (decimal.TryParse(Request.QueryString["id"], out applyformId))
         {
             RefundOrScrapApplyform applyform = ApplyformQueryService.QueryRefundOrScrapApplyform(applyformId);
             if (applyform == null)
             {
                 showErrorMessage("退/废票申请单不存在");
             }
             else
             {
                 if (applyform.RefundBill != null)
                 {
                     var fare = applyform.RefundBill.Purchaser.Amount;
                     BalanceRefundError.Attributes.Add("add", applyformId + "|" + fare);
                 }
                 var applyerAccount = CurrentUser.Name;
                 var attachment     = ApplyformQueryService.QueryApplyAttachmentView(applyform.Id);
                 if (attachment.Any())
                 {
                     ucOutPutImage.IsPlatform      = false;
                     ucOutPutImage.ApplyAttachment = attachment;
                 }
                 else
                 {
                     divApplyAttachment.Visible = false;
                 }
                 setButton(applyform);
                 bindData(applyform);
             }
         }
         else
         {
             showErrorMessage("参数错误");
         }
     }
 }
示例#23
0
 /// <summary>
 /// 确认价格信息修改
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void SurePrice(object sender, EventArgs e)
 {
     try
     {
         decimal applyformId;
         if (decimal.TryParse(Request.QueryString["id"], out applyformId))
         {
             RefundOrScrapApplyform applyform = ApplyformQueryService.QueryRefundOrScrapApplyform(applyformId);
             var priceView = new List <PriceView>();
             foreach (RepeaterItem item in ListVoyage.Items)
             {
                 if (item.ItemType == ListItemType.Header || item.ItemType == ListItemType.Footer)
                 {
                     continue;
                 }
                 var releasePriceCtl = item.FindControl("ReleasePrice") as TextBox;
                 var airportFeeCtl   = item.FindControl("AirPortFee") as TextBox;
                 var Departure       = item.FindControl("VoyageStart") as HiddenField;
                 var Arrival         = item.FindControl("VoyageEnd") as HiddenField;
                 var ReleasePrice    = float.Parse(releasePriceCtl.Text.Trim());
                 var AirPortFee      = float.Parse(airportFeeCtl.Text.Trim());
                 priceView.Add(new PriceView
                 {
                     AirportPair = new AirportPair(Departure.Value, Arrival.Value),
                     AirportFee  = (decimal)AirPortFee,
                     Fare        = (decimal)ReleasePrice
                 });
             }
             OrderProcessService.RevisePrice(applyform.OrderId, priceView, CurrentUser.UserName);
             ReleaseLock(applyform.OrderId);
             RegisterScript(this, "alert('价格修改成功!');location.href='/OrderModule/Operate/ChangeProcessList.aspx'", true);
         }
     }
     catch (Exception ex)
     {
         ShowExceptionMessage(ex, "修改价格");
     }
 }
示例#24
0
 protected void Page_Load(object sender, EventArgs e)
 {
     RegisterOEMSkins("form.css");
     if (!IsPostBack)
     {
         setBackButton();
         decimal applyformId;
         if (decimal.TryParse(Request.QueryString["id"], out applyformId))
         {
             RefundOrScrapApplyform applyform = ApplyformQueryService.QueryRefundOrScrapApplyform(applyformId);
             string lockErrorMsg;
             if (Lock(applyformId, LockRole.Platform, "退/废票处理", out lockErrorMsg))
             {
                 if (applyform == null)
                 {
                     showErrorMessage("退/废票申请单不存在");
                 }
                 else
                 {
                     RefundApplyform refundApplyform = applyform as RefundApplyform;
                     if (refundApplyform != null && (refundApplyform.RefundType == RefundType.Involuntary || refundApplyform.RefundType == RefundType.SpecialReason))
                     {
                         bindAttachment(applyform.Id);
                     }
                     bindData(applyform);
                 }
             }
             else
             {
                 showErrorMessage("锁定申请单失败。原因:" + lockErrorMsg);
             }
         }
         else
         {
             showErrorMessage("参数错误");
         }
     }
 }
示例#25
0
 /// <summary>
 /// 修改服务费并指向出票方退票
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void ToRefund(object sender, EventArgs e)
 {
     try
     {
         decimal applyformId;
         if (decimal.TryParse(Request.QueryString["id"], out applyformId))
         {
             var applyform = ApplyformQueryService.QueryRefundOrScrapApplyform(applyformId);
             ApplyformProcessService.PlatformProcessRefundApplyform(applyformId, applyform.Flights.Select(f => new PlatformProcessRefundView
             {
                 AirportPair   = new AirportPair(f.OriginalFlight.Departure.Code, f.OriginalFlight.Arrival.Code),
                 ServiceCharge = decimal.Parse(ChangedServiceCharge.Value)
             }
                                                                                                          ), getIncreasing(applyform.Passengers.First()), ChangeServiceChargeReason.Text, CurrentUser.UserName);
             ReleaseLock(applyformId);
             RegisterScript(this, "alert('修改服务费成功!');location.href='" + ReturnUrl + "'", true);
         }
     }
     catch (Exception ex)
     {
         ShowExceptionMessage(ex, "修改服务费");
     }
 }
示例#26
0
 private void initLazyLoaders()
 {
     _applyformLoader  = new LazyLoader <RefundOrScrapApplyform>(() => ApplyformQueryService.QueryRefundOrScrapApplyform(AssociateApplyformId));
     _refundBillLoader = new LazyLoader <NormalRefundBill>(() => DistributionQueryService.QueryNormalRefundBill(AssociateApplyformId));
 }
示例#27
0
        /// <summary>
        /// 查询申请单支付状态,补单
        /// </summary>
        /// <param name="applyformId"></param>
        /// <returns></returns>
        public string QueryPaymentInfo(decimal applyformId)
        {
            bool paySuccess = false;
            var  applyform  = ApplyformQueryService.QueryApplyform(applyformId) as PostponeApplyform;

            if (applyform == null)
            {
                return("改期申请单不存在");
            }
            if (applyform.Status != PostponeApplyformStatus.Agreed)
            {
                return("OK");
            }
            try
            {
#if (DEBUG)
                var tradeResult = AccountTradeService.PayTradeQuery(applyformId.ToString());
                if (tradeResult == null)
                {
                    return("查询支付信息失败");
                }
                if (tradeResult.Status != PayStatus.PaySuccess)
                {
                    return("没有查询到支付成功信息");
                }
                var paramArray = tradeResult.CustomParameter.Split('|');
                if (paramArray.Length >= 3)
                {
                    var operatorAccount = paramArray[2];
                    ChinaPay.B3B.DataTransferObject.Common.PayInterface   payInterface   = ChinaPay.B3B.Service.Tradement.NotifyService.ParsePayInterface(tradeResult.payInterface);
                    ChinaPay.B3B.DataTransferObject.Common.PayAccountType payAccountType = ChinaPay.B3B.Service.Tradement.NotifyService.ParsePayAccountType(tradeResult.payAccountType);
                    ApplyformProcessService.PostponeFeePaySuccess(
                        applyform.Id,
                        tradeResult.AccountNo,
                        tradeResult.TradeNo,
                        tradeResult.FillChargeId.ToString(),//channelTradeNo
                        tradeResult.PayTime.Value,
                        payInterface,
                        payAccountType,
                        operatorAccount);
                    paySuccess = true;
                }
                LogService.SaveTradementLog(new TradementLog()
                {
                    OrderId     = applyform.OrderId,
                    ApplyformId = applyformId,
                    Type        = TradementBusinessType.SubPay,
                    Request     = string.Empty,
                    Response    = string.Empty,
                    Remark      = "改期支付补单",
                    Time        = DateTime.Now
                });
#else
                QueryPaymentProcess queryPayment = new QueryPaymentProcess(applyformId.ToString());
                if (queryPayment.Execute() && queryPayment.PaySuccess)
                {
                    var paramArray = queryPayment.ExtraParams.Split('|');
                    if (paramArray.Length >= 3)
                    {
                        var operatorAccount = paramArray[2];
                        ApplyformProcessService.PostponeFeePaySuccess(
                            applyform.Id,
                            queryPayment.PayAccount,
                            queryPayment.PayTradeNo,
                            queryPayment.ChannelTradeNo,
                            queryPayment.PayTime,
                            queryPayment.PayChannel,
                            queryPayment.PayAccountType,
                            operatorAccount);
                        paySuccess = true;
                    }
                    LogService.SaveTradementLog(new TradementLog()
                    {
                        OrderId     = applyform.OrderId,
                        ApplyformId = applyformId,
                        Type        = TradementBusinessType.SubPay,
                        Request     = string.Empty,
                        Response    = queryPayment.ExtraParams,
                        Remark      = "改期支付补单",
                        Time        = DateTime.Now
                    });
                }
                else
                {
                    return("查询支付信息失败");
                }
#endif
            }
            catch (Exception ex)
            {
                LogService.SaveExceptionLog(ex, "补单");
                paySuccess = false;
            }
            return(paySuccess?"OK":"ERROR");
        }
示例#28
0
 public object QueryOEMApplyform(ApplyformQueryCondition condition, Pagination pagination)
 {
     try
     {
         var oem = ChinaPay.B3B.Service.Organization.OEMService.QueryOEM(CurrentCompany.CompanyId);
         if (oem == null)
         {
             throw new Exception("没有找到对应的oem信息");
         }
         condition.OEMID = oem.Id;
         if (condition.ApplyformType == ApplyformType.Refund || condition.ApplyformType == ApplyformType.Scrap)
         {
             if (!string.IsNullOrWhiteSpace(condition.RefundStatusText) && condition.RefundStatusText != "全部")
             {
                 var statues = Service.Order.StatusService.GetRoleRefundApplyformStatus(OrderRole.OEMOwner).Where(s => s.Value == condition.RefundStatusText).Select(s => s.Key);
                 if (statues.Any())
                 {
                     condition.ApplyDetailStatus = 0;
                     foreach (var status in statues)
                     {
                         condition.ApplyDetailStatus |= (byte)status;
                     }
                 }
             }
         }
         else if (condition.ApplyformType == ApplyformType.Postpone)
         {
             if (!string.IsNullOrWhiteSpace(condition.PostponeStatusText) && condition.PostponeStatusText != "全部")
             {
                 var statues = Service.Order.StatusService.GetRolePostponeApplyformStatus(OrderRole.OEMOwner).Where(s => s.Value == condition.PostponeStatusText).Select(s => s.Key);
                 if (statues.Any())
                 {
                     condition.ApplyDetailStatus = 0;
                     foreach (var status in statues)
                     {
                         condition.ApplyDetailStatus |= (byte)status;
                     }
                 }
             }
         }
         List <ApplyformListView> forms = ApplyformQueryService.QueryApplyforms(condition, pagination).ToList();
         var lockInfos = LockService.Query(forms.Select(form => form.ApplyformId.ToString())).ToList();
         var applyform = forms.Select(form =>
         {
             LockInfo lockInfo = lockInfos.FirstOrDefault(l => l.Key == form.ApplyformId.ToString());
             return(new
             {
                 form.ApplyformId,
                 PNR = form.OriginalPNR == null ? string.Empty : form.OriginalPNR.ToListString(),
                 Voyage = IEnumerableExtension.Join <FlightListView>(form.Flights, "<br />",
                                                                     f =>
                                                                     string.Format(
                                                                         "{0}{1}-{2}{3}",
                                                                         f.DepartureCity,
                                                                         f.DepartureAirport,
                                                                         f.ArrivalCity,
                                                                         f.ArrivalAirport)),
                 FlightInfo = form.Flights.Join("<br />", f => string.Format(
                                                    "{0}{1}<br />{2} / {3}",
                                                    f.Carrier,
                                                    f.FlightNo,
                                                    string.IsNullOrEmpty(f.Bunk) ? "-" : f.Bunk, getDiscountText
                                                        (f.Discount))),
                 TakeoffTime = form.Flights.Join("<br />", f =>
                                                 f.TakeoffTime.
                                                 ToString(
                                                     "yyyy-MM-dd<br />HH:mm")),
                 Passengers = String.Join("<br />", (IEnumerable <string>)form.Passengers),
                 ApplyTypeDesc = form.ApplyformType.GetDescription(),
                 ApplyType = form.ApplyformType,
                 ProcessStatus = GetProcessStatus(form, OrderRole.OEMOwner),
                 form.AppliedTime,
                 form.ApplierAccount,
                 ProductType = form.ProductType.GetDescription(),
                 LockInfo = lockInfo == null
                                ? string.Empty
                                : lockInfo.Company ==
                            CurrentCompany.CompanyId
                                      ? string.Format("{0}<br />{1}", lockInfo.Account, lockInfo.Name)
                                      : string.Format("{0}<br />({1})", lockInfo.LockRole.GetDescription(), lockInfo.Account),
                 RenderSupperUnLock = lockInfo != null,
                 RefundType = form.RefundType.HasValue ? form.RefundType.GetDescription() : string.Empty,
                 IsRefund = form.ApplyformType == ApplyformType.Refund,
                 EnableQueryPaymentInfo = form.ApplyformType == ApplyformType.Postpone && (PostponeApplyformStatus)form.ApplyDetailStatus == PostponeApplyformStatus.Agreed
             });
         });
         return(new { Applyforms = applyform, Pagination = pagination });
     }
     catch (Exception ex)
     {
         LogService.SaveExceptionLog(ex);
         throw;
     }
 }
示例#29
0
 public bool DeleteApplyAttachmentView(Guid applyAttachmentId)
 {
     return(ApplyformQueryService.DeleteApplyAttachmentView(applyAttachmentId, CurrentUser.UserName));
 }
示例#30
0
        private void process()
        {
            showMessage("开始下一批处理");
            var noPorcess = AutoPayService.QueryNoPorcess();
            //var str = Environment.CurrentDirectory;
            string msg = "";

            foreach (var item in noPorcess)
            {
                if (!_run)
                {
                    break;
                }
                AccountTradeDTO tradeView = null;
                //处理订单
                if (item.OrderType == OrderType.Order)
                {
                    OrderProcessService.Payable(item.OrderId, out msg);
                    if (string.IsNullOrEmpty(msg))
                    {
                        Order order = OrderQueryService.QueryOrder(item.OrderId);
                        tradeView = getPayTradeView(order, getPayAccountNo(item.PayType, order.Purchaser.Amount, order.Purchaser.CompanyId), "");
                    }
                }
                //处理申请单
                else if (item.OrderType == OrderType.Postpone)
                {
                    ApplyformProcessService.Payable(item.OrderId, out msg);
                    if (string.IsNullOrEmpty(msg))
                    {
                        PostponeApplyform applyform = ApplyformQueryService.QueryPostponeApplyform(item.OrderId);
                        if (applyform.PayBill.Tradement == null)
                        {
                            msg = "申请单:" + item.OrderId + " 不能进行代扣,无支付信息!";
                        }
                        tradeView = getPayTradeView(applyform, getPayAccountNo(item.PayType, Math.Abs(applyform.PayBill.Applier.Amount), applyform.PurchaserId), "");
                    }
                }
                if (item.PayType == WithholdingAccountType.Alipay)
                {
                    tradeView.BuyerEmail = item.PayAccountNo;
                }
                try
                {
                    if (string.IsNullOrEmpty(msg))
                    {
                        global::PoolPay.DomainModel.Trade.PayTrade pay = AutoPayService.AutoPay(tradeView, item.PayType);
                        if (item.PayType == WithholdingAccountType.Poolpay)
                        {
                            //如果是国付通代扣就直接修改订单状态
                            if (pay != null && pay.Status == global::PoolPay.DataTransferObject.PayStatus.PaySuccess)
                            {
                                NotifyService.PaySuccess(item.OrderId, pay.CustomParameter, pay.Id.ToString(), pay.FillChargeId.ToString(), pay.PayDate.Value, "", (pay.BuyerAccount.Character as global::PoolPay.DomainModel.Accounts.CreditAccount) == null ? "0" : "1", pay.BuyerAccount.AccountNo);
                            }
                        }
                        showMessage("处理成功");
                    }
                    else
                    {
                        showMessage("处理失败" + Environment.NewLine + "原因:" + msg);
                    }
                }
                catch (Exception ex)
                {
                    showMessage("处理失败" + Environment.NewLine + "原因:" + ex.Message);
                }
                AutoPayService.UpdateProcess(item.OrderId);
                System.Threading.Thread.Sleep(50);
            }
            showMessage("当前批次处理结束,共处理 " + noPorcess.Count + " 条");
        }