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(); } } } }
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); } } } }
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, "上传"); } } }
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)); }); }
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, "同意退/废票"); } }
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("参数错误"); } } }
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, "查询"); } }
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); } } }
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, "上传"); } } }
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; }
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, "重新退/废票"); } }
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, "同意废票"); } }
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()); }
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(); }
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); } } }
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(); }
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()); } }
/// <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); }
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, "差错退款"); } }
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("参数错误"); } } }
/// <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, "修改价格"); } }
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("参数错误"); } } }
/// <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, "修改服务费"); } }
private void initLazyLoaders() { _applyformLoader = new LazyLoader <RefundOrScrapApplyform>(() => ApplyformQueryService.QueryRefundOrScrapApplyform(AssociateApplyformId)); _refundBillLoader = new LazyLoader <NormalRefundBill>(() => DistributionQueryService.QueryNormalRefundBill(AssociateApplyformId)); }
/// <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"); }
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; } }
public bool DeleteApplyAttachmentView(Guid applyAttachmentId) { return(ApplyformQueryService.DeleteApplyAttachmentView(applyAttachmentId, CurrentUser.UserName)); }
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 + " 条"); }