private void bindApplyAndProcessInfo(Service.Order.Domain.Applyform.RefundOrScrapApplyform applyform) { this.lblAppliedTime.Text = applyform.AppliedTime.ToString("yyyy-MM-dd HH:mm"); this.lblAppliedReason.Text = applyform.ApplyRemark; if (applyform.ProcessedTime.HasValue) { this.lblProcessedTime.Text = applyform.ProcessedTime.Value.ToString("yyyy-MM-dd HH:mm"); this.lblProcessedResult.Text = StatusService.GetRefundApplyformStatus(applyform.Status, GetOrderRole(applyform.Order)) + " " + applyform.ProcessedFailedReason; } if (CurrentCompany.CompanyType == CompanyType.Provider && applyform.Status == DataTransferObject.Order.RefundApplyformStatus.Refunded) { var refundInfoHTML = new StringBuilder(); refundInfoHTML.Append("<table><tr><th>航段</th><th>手续费率</th><th>手续费</th><th>退款金额</th></tr>"); var index = 0; NormalRefundRoleBill bill = getUserRoleBill(applyform.RefundBill); var flightRefundFees = applyform.OriginalFlights.Join(bill.Source.Details, f => f.ReservateFlight, f => f.Flight.Id, (f1, f2) => new { flight = f1, fee = f2 }); foreach (var item in flightRefundFees) { refundInfoHTML.Append("<tr>"); refundInfoHTML.AppendFormat("<td>{0} - {1}</td>", item.flight.Departure.City, item.flight.Arrival.City); refundInfoHTML.AppendFormat("<td>{0}%</td>", (item.fee.RefundRate * 100).TrimInvaidZero()); refundInfoHTML.AppendFormat("<td>{0}</td>", Math.Abs(item.fee.RefundFee).TrimInvaidZero()); if (index == 0) { refundInfoHTML.AppendFormat("<td rowspan='{0}'>{1}</td>", flightRefundFees.Count(), bill.Source.Anticipation.TrimInvaidZero()); } refundInfoHTML.Append("</tr>"); index++; } refundInfoHTML.Append("</table>"); this.divRefundFeeInfo.InnerHtml = refundInfoHTML.ToString(); } }
bool isRoleRefund(NormalRefundRoleBill roleBill, Service.Tradement.RefundResult refundResult) { if (roleBill == null) { return(false); } return((refundResult.Roles == null || refundResult.Roles.Contains(roleBill.Owner.RoleType)) && string.Compare(roleBill.Owner.Account, refundResult.Account, true) == 0); }
private void bindApplyAndProcessInfo(RefundOrScrapApplyform applyform) { lblAppliedTime.Text = applyform.AppliedTime.ToString("yyyy-MM-dd HH:mm"); lblAppliedReason.Text = applyform.ApplyRemark; if (applyform.ProcessedTime.HasValue) { lblProcessedTime.Text = applyform.ProcessedTime.Value.ToString("yyyy-MM-dd HH:mm"); lblProcessedResult.Text = applyform.ProcessStatus == ApplyformProcessStatus.Finished ? StatusService.GetRefundApplyformStatus(applyform.Status, GetOrderRole(applyform.Order)) + " " + applyform.ProcessedFailedReason : string.Empty; } if (CurrentCompany.CompanyType == CompanyType.Provider && applyform.Status == RefundApplyformStatus.AgreedByProviderBusiness) { var refundInfoHTML = new StringBuilder(); refundInfoHTML.Append("<table><tr><th>航段</th><th>手续费率</th><th>手续费</th><th>应退金额</th><th>实退金额</th></tr>"); int index = 0; //if(applyform is RefundApplyform) //{ NormalRefundRoleBill bill = applyform.RefundBill.Provider; var flightRefundFees = applyform.OriginalFlights.Join(bill.Source.Details, f => f.ReservateFlight, f => f.Flight.Id, (f1, f2) => new { flight = f1, fee = f2 }); foreach (var item in flightRefundFees) { refundInfoHTML.Append("<tr>"); refundInfoHTML.AppendFormat("<td>{0} - {1}</td>", item.flight.Departure.City, item.flight.Arrival.City); refundInfoHTML.AppendFormat("<td>{0}%</td>", (item.fee.RefundRate * 100).TrimInvaidZero()); refundInfoHTML.AppendFormat("<td>{0}</td>", Math.Abs(item.fee.RefundFee).TrimInvaidZero()); if (index == 0) { refundInfoHTML.AppendFormat("<td rowspan='{0}'>{1}</td>", applyform.Flights.Count() * applyform.Passengers.Count(), bill.Source.Anticipation.TrimInvaidZero()); refundInfoHTML.AppendFormat("<td rowspan='{0}'>{1}</td>", applyform.Flights.Count() * applyform.Passengers.Count(), bill.Amount.TrimInvaidZero()); } refundInfoHTML.Append("</tr>"); index++; } //} //else //{ // NormalRefundRoleBill bill = applyform.RefundBill.Provider; // foreach (var item in applyform.Flights) // { // refundInfoHTML.Append("<tr>"); // refundInfoHTML.AppendFormat("<td>{0} - {1}</td>", item.OriginalFlight.Departure.AirportCode, item.OriginalFlight.Arrival.AirportCode); // refundInfoHTML.AppendFormat("<td>{0}%</td>", (item.RefundFeeInfo.Rate * 100).TrimInvaidZero()); // refundInfoHTML.AppendFormat("<td>{0}</td>", item.RefundFeeInfo.Fee.TrimInvaidZero()); // if (index == 0) // { // refundInfoHTML.AppendFormat("<td rowspan='{0}'>{1}</td>", applyform.Flights.Count(), bill.Source.Anticipation.TrimInvaidZero()); // } // refundInfoHTML.Append("</tr>"); // index++; // } //} refundInfoHTML.Append("</table>"); divRefundFeeInfo.InnerHtml = refundInfoHTML.ToString(); } }
internal void AddRoyalty(NormalRefundRoleBill royalty) { if (royalty == null) { throw new ArgumentNullException("royalty"); } if (_royalties == null) { _royalties = new List <NormalRefundRoleBill>(); } _royalties.Add(royalty); }
/// <summary> /// 生成退款账单 /// </summary> internal NormalRefundRoleBill MakeRefundBill(NormalPayRoleBill payBill, RefundInfo refundInfo, IEnumerable <NormalRefundRoleBill> refundedNormalBills) { var refundDetailBills = (from payDetail in payBill.Source.Details where hasApply(refundInfo, payDetail.Flight.Id, payDetail.Passenger) let refundedDetails = getRefundedDetailBills(refundedNormalBills, payDetail.Flight.Id, payDetail.Passenger) select makeRefundDetailBill(payDetail, refundInfo, refundedDetails)).ToList(); var bill = new NormalRefundRoleBill(this) { PayRoleBill = payBill, Source = new NormalRefundRoleBillSource { Details = refundDetailBills } }; return(bill); }
public void InitRefundFormView(RefundOrScrapApplyform applyform, CompanyType currentCompanyType) { lblApplyformId.Text = applyform.Id.ToString(); lblPassengers.Text = string.Join(" ", applyform.Passengers.Select(p => p.Name)); lblPNR.Text = PNRRender(applyform.NewPNR ?? applyform.OriginalPNR); lblAppliedTime.Text = applyform.AppliedTime.ToString("yyyy-MM-dd HH:mm:ss"); if (applyform.RefundBill != null) { lblRefundFee.Text = string.Empty; if (currentCompanyType != CompanyType.Platform) { NormalRefundRoleBill bill = BasePage.SearchBill(applyform.RefundBill); lblRefundMoney.Text = Math.Abs(bill.Source.Details.Sum(p => p.Anticipation)).TrimInvaidZero(); } else { RefundMoney.Text = " "; } IsShowRefundFee = true; } else { RefundFee.Text = " "; } //IsShowRefundFee = applyform.Status == RefundApplyformStatus.Denied; lblStatus.Text = StatusService.GetRefundApplyformStatus(applyform.Status, BasePage.GetOrderRole(applyform.Order)); lblProcessedTime.Text = applyform.ProcessedTime.HasValue ? applyform.ProcessedTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : string.Empty; lblApplyformId.PostBackUrl = InitDetailUrl(BasePage.GetOrderRole(applyform.Order)) + applyform.Id; dataList.DataSource = applyform.Flights.Select(f => new { f.OriginalFlight.Carrier.Name, f.OriginalFlight.FlightNo, f.OriginalFlight.AirCraft, Bank = string.Format("{0}/{1}", string.IsNullOrEmpty(f.OriginalFlight.Bunk.Code) ? "-" : f.OriginalFlight.Bunk.Code, (f.OriginalFlight.Bunk.Discount * 100).TrimInvaidZero()), Departure = string.Format("{0}{1}", f.OriginalFlight.Departure.City, f.OriginalFlight.Departure.Name), Arrival = string.Format("{0}{1}", f.OriginalFlight.Arrival.City, f.OriginalFlight.Arrival.Name), f.OriginalFlight.TakeoffTime, f.OriginalFlight.LandingTime, f.OriginalFlight.Id }); dataList.DataBind(); }
private static decimal getFreezeAmount(BalanceRefundApplyform refundOrScrapApplyform, NormalPayRoleBill roleBill, NormalRefundRoleBill provider) { var payAmount = roleBill.Source.Details.Where( item => refundOrScrapApplyform.Applyform.Passengers.Any(p => p.Id == item.Passenger) && refundOrScrapApplyform.Applyform.Flights.Any(f => f.OriginalFlight.ReservateFlight == item.Flight.Id)).Sum(item => item.Amount); return(payAmount - Math.Abs(provider.Amount)); }
private decimal getPremiumProfit(IEnumerable <NormalRefundRoleBill> tradeRoleBills, NormalRefundRoleBill deductionBill) { decimal tradeRoleBalance = 0; if (tradeRoleBills != null) { var userRoleBalance = tradeRoleBills.Sum(item => item.Source.Anticipation); var platformDeduction = deductionBill == null ? 0 : deductionBill.Source.Anticipation; tradeRoleBalance = userRoleBalance + platformDeduction; } return(tradeRoleBalance * -1); }