Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
 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);
 }
Esempio n. 3
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();
     }
 }
Esempio n. 4
0
 internal void AddRoyalty(NormalRefundRoleBill royalty)
 {
     if (royalty == null)
     {
         throw new ArgumentNullException("royalty");
     }
     if (_royalties == null)
     {
         _royalties = new List <NormalRefundRoleBill>();
     }
     _royalties.Add(royalty);
 }
Esempio n. 5
0
        /// <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);
        }
Esempio n. 6
0
        public void InitRefundFormView(RefundOrScrapApplyform applyform, CompanyType currentCompanyType)
        {
            lblApplyformId.Text = applyform.Id.ToString();
            lblPassengers.Text  = string.Join("&nbsp;", 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 = "&nbsp;";
                }
                IsShowRefundFee = true;
            }
            else
            {
                RefundFee.Text = "&nbsp;";
            }
            //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();
        }
Esempio n. 7
0
        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));
        }
Esempio n. 8
0
        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);
        }