Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
 /// <summary>
 /// 判断某人有没有申请某航段的差错退款
 /// </summary>
 private bool hasApply(ErrorRefundInfo refundInfo, Guid flight, Guid passenger)
 {
     return(refundInfo.Contains(flight, passenger));
 }
Beispiel #3
0
        /// <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);
        }