/// <summary> /// 生成支付账单 /// </summary> /// <param name="postponeApplyform">改期申请</param> public static Distribution.Domain.Bill.Pay.PostponePayBill ProducePayBill(Order.Domain.Applyform.PostponeApplyform postponeApplyform) { if (postponeApplyform == null) { throw new ArgumentNullException("postponeApplyform"); } if (!postponeApplyform.Passengers.Any()) { throw new CustomException("缺少乘机人信息"); } if (!postponeApplyform.Flights.Any()) { throw new CustomException("缺少航段信息"); } if (DistributionQueryService.QueryPostponePayBill(postponeApplyform.Id) != null) { throw new RepeatedItemException("改期支付账单已存在"); } var payBill = new Distribution.Domain.Bill.Pay.PostponePayBill(postponeApplyform.OrderId, postponeApplyform.Id) { Remark = "改期收费" }; // 申请方 var applier = new Distribution.Domain.Role.Purchaser(postponeApplyform.PurchaserId); payBill.Applier = applier.MakePayBill(postponeApplyform.Flights, postponeApplyform.Passengers); // 受理方 var accepter = new Distribution.Domain.Role.Platform(); payBill.Accepter = accepter.MakePayBill(postponeApplyform.Flights, postponeApplyform.Passengers, new[] { payBill.Applier }); return(payBill); }
/// <summary> /// 生成退款账单 /// </summary> /// <param name="payBill">改期支付账单</param> public static Distribution.Domain.Bill.Refund.PostponeRefundBill ProducePostponeRefundBill(Distribution.Domain.Bill.Pay.PostponePayBill payBill) { if (payBill == null) { throw new ArgumentNullException("payBill"); } if (DistributionQueryService.QueryPostponeRefundBill(payBill.ApplyformId) != null) { throw new RepeatedItemException("退款账单已存在"); } return(payBill.MakeRefundBill("拒绝改期")); }