/// <summary> /// 生成差错退款账单 /// </summary> internal NormalRefundRoleBill MakeErrorRefundBill(NormalPayRoleBill payBill, ErrorRefundInfo refundInfo, IEnumerable <NormalRefundRoleBill> refundedNormalBills) { var refundDetailBills = (from payDetail in payBill.Source.Details let flightId = payDetail.Flight.Id let passenger = payDetail.Passenger where hasApply(refundInfo, flightId, passenger) let refundedDetails = getRefundedDetailBills(refundedNormalBills, flightId, passenger) select makeRefundDetailBill(payDetail, refundInfo.GetFlight(flightId), refundedDetails)).ToList(); var bill = new NormalRefundRoleBill(this) { PayRoleBill = payBill, Source = new NormalRefundRoleBillSource { Details = refundDetailBills } }; return(bill); }
/// <summary> /// 判断某人有没有申请某航段的差错退款 /// </summary> private bool hasApply(ErrorRefundInfo refundInfo, Guid flight, Guid passenger) { return(refundInfo.Contains(flight, passenger)); }
/// <summary> /// 生成差错退款账单 /// </summary> internal PlatformBill <NormalRefundRoleBill, NormalRefundRoleBillSource, NormalRefundDetailBill> MakeErrorRefundBill(NormalPayRoleBill payBill, ErrorRefundInfo refundInfo, IEnumerable <NormalRefundRoleBill> refundedBills, IEnumerable <NormalRefundRoleBill> tradeRoleRefundBills) { var refundBill = new PlatformBill <NormalRefundRoleBill, NormalRefundRoleBillSource, NormalRefundDetailBill>(); refundBill.Premium = getPremiumProfit(tradeRoleRefundBills, refundBill.Deduction); refundBill.TradeFee = makeTradeFeeProfit(tradeRoleRefundBills); refundBill.Account = Account; return(refundBill); }