protected override decimal GetRefundAnticipation(Bill.Pay.Normal.NormalPayDetailBill payBill, decimal refundCommission, decimal refundIncreasing, decimal refundServiceCharge, decimal refundRate, decimal refundFee) { // 退还票面价 var requireRefundFare = payBill.Flight.Fare - refundFee; if (payBill.Flight.Fare > 0) { // 防止过度的收取手续费 if (requireRefundFare < 0) { requireRefundFare = 0; } } // 退还总金额 // 所有退票,都要收回佣金 var requireRefundAmount = (requireRefundFare + payBill.Commission + payBill.Flight.AirportFee + payBill.Flight.BAF) * -1; // 退还服务费 requireRefundAmount += refundServiceCharge; requireRefundAmount += refundIncreasing; return(requireRefundAmount > 0 ? 0 : requireRefundAmount); }
protected override decimal GetRefundAnticipation(Bill.Pay.Normal.NormalPayDetailBill payBill, decimal refundCommission, decimal refundIncreasing, decimal refundServiceCharge, decimal refundRate, decimal refundFee) { // 票面价退还金额 var requireRefundFare = payBill.Flight.Fare + refundFee; if (payBill.Flight.Fare > 0) { // 防止过度的收取手续费 if (requireRefundFare < 0) { requireRefundFare = 0; } } // 如果有服务费,则加上需要退还的服务费 requireRefundFare += refundServiceCharge; // 退还总金额 var requireRefundAmount = requireRefundFare + payBill.Flight.AirportFee + payBill.Flight.BAF; // 所有退票,都要收回佣金 requireRefundAmount += refundCommission; // 收回加价金额 requireRefundAmount += refundIncreasing; return(requireRefundAmount < 0 ? 0 : requireRefundAmount); }
protected override decimal GetRefundAnticipation(Bill.Pay.Normal.NormalPayDetailBill payBill, decimal refundCommission, decimal refundIncreasing, decimal refundServiceCharge, decimal refundRate, decimal refundFee) { return(refundCommission + refundIncreasing); }
protected override decimal GetRefundIncreasing(Bill.Pay.Normal.NormalPayDetailBill payBill, bool providerRefundServiceCharge) { // 如果产品发布方要退服务费,则要将当时被加价的金额收回来 return(providerRefundServiceCharge ? payBill.Increasing * -1 : 0); }