コード例 #1
0
        /// <summary>
        /// 出票方查询申请单
        /// </summary>
        public static IEnumerable <ApplyformListView> ProviderQueryApplyformsNew(ApplyformQueryCondition condition, Pagination pagination)
        {
            if (condition == null)
            {
                throw new ArgumentNullException("condition");
            }
            condition.RequireRevisePrice            = false;
            condition.IsStatusAndRequireRevisePrice = true;

            if (condition.ApplyformType.HasValue)
            {
                condition.ApplyformType = ExcludeApplyformType(condition.ApplyformType.Value, ApplyformType.Postpone);
            }
            else
            {
                condition.ApplyformType = ApplyformType.Refund | ApplyformType.Scrap | ApplyformType.BlanceRefund;
            }
            if ((condition.ApplyformType.Value & ApplyformType.Refund) == ApplyformType.Refund ||
                (condition.ApplyformType.Value & ApplyformType.Scrap) == ApplyformType.Scrap)
            {
                if (!condition.RefundStatuses.HasValue)
                {
                    condition.RefundStatuses = GetAllRefundStatus();
                }
                condition.RefundStatuses = ExcludeRefundStatus(condition.RefundStatuses.Value,
                                                               RefundApplyformStatus.AppliedForPlatform, RefundApplyformStatus.AppliedForCancelReservation);
            }

            return(QueryApplyformsNew(condition, pagination));
        }
コード例 #2
0
 public object PurchaseQueryApplyform(ApplyformQueryCondition condition, Pagination pagination)
 {
     try
     {
         if (condition.ApplyformType == ApplyformType.Refund || condition.ApplyformType == ApplyformType.Scrap)
         {
             if (!string.IsNullOrWhiteSpace(condition.RefundStatusText) && condition.RefundStatusText != "全部")
             {
                 var statues = Service.Order.StatusService.GetRoleRefundApplyformStatus(OrderRole.Purchaser).Where(s => s.Value == condition.RefundStatusText).Select(s => s.Key);
                 if (statues.Any())
                 {
                     condition.ApplyDetailStatus = 0;
                     foreach (var status in statues)
                     {
                         condition.ApplyDetailStatus |= (byte)status;
                     }
                 }
             }
         }
         else if (condition.ApplyformType == ApplyformType.Postpone)
         {
             if (!string.IsNullOrWhiteSpace(condition.PostponeStatusText) && condition.PostponeStatusText != "全部")
             {
                 var statues = Service.Order.StatusService.GetRolePostponeApplyformStatus(OrderRole.Purchaser).Where(s => s.Value == condition.PostponeStatusText).Select(s => s.Key);
                 if (statues.Any())
                 {
                     condition.ApplyDetailStatus = 0;
                     foreach (var status in statues)
                     {
                         condition.ApplyDetailStatus |= (byte)status;
                     }
                 }
             }
         }
         condition.Purchaser = CurrentCompany.CompanyId;
         var applyform = from item in Service.ApplyformQueryService.QueryApplyforms(condition, pagination)
                         select new
         {
             ApplyformId   = item.ApplyformId,
             ProductType   = item.ProductType.GetDescription(),
             PNR           = item.OriginalPNR.ToListString(),
             Voyage        = item.Flights.Join("<br />", f => string.Format("{0}-{1}", f.DepartureCity, f.ArrivalCity)),
             FlightInfo    = item.Flights.Join("<br />", f => string.Format("{0}{1}<br />{2} / {3}", f.Carrier, f.FlightNo, string.IsNullOrEmpty(f.Bunk) ? "-" : f.Bunk, getDiscountText(f.Discount))),
             TakeoffTime   = item.Flights.Join("<br />", f => f.TakeoffTime.ToString("yyyy-MM-dd<br />HH:mm")),
             Passenger     = item.Passengers.Join("<br />"),
             ApplyType     = item.ApplyformType,
             ApplyTypeText = item.ApplyformType.GetDescription(),
             Status        = GetProcessStatus(item, OrderRole.Purchaser),
             Applier       = item.ApplierAccount,
             AppliedTime   = item.AppliedTime.ToString("yyyy-MM-dd<br />HH:mm:ss")
         };
         return(new { Applyforms = applyform, Pagination = pagination });
     }
     catch (Exception ex)
     {
         LogService.SaveExceptionLog(ex);
         throw;
     }
 }
コード例 #3
0
 /// <summary>
 /// 获取申请单列表信息
 /// </summary>
 /// <param name="condition">查询条件</param>
 /// <param name="pagination">分页信息</param>
 public static IEnumerable <ApplyformListView> QueryApplyformsNew(ApplyformQueryCondition condition, Pagination pagination)
 {
     if (condition == null)
     {
         throw new ArgumentNullException("condition");
     }
     if (pagination == null)
     {
         throw new ArgumentNullException("pagination");
     }
     using (var command = Factory.CreateCommand()) {
         var repository = Factory.CreateApplyformRepository(command);
         return(repository.QueryApplyformsNew(condition, pagination));
     }
 }
コード例 #4
0
        private ApplyformQueryCondition getCondition()
        {
            var parameter = new ApplyformQueryCondition {
                PNR              = txtPNR.Text.Trim(),
                Passenger        = txtPassenger.Text.Trim(),
                AppliedDateRange =
                    new Range <DateTime>(DateTime.Parse(txtAppliedDateStart.Text.Trim()),
                                         DateTime.Parse(txtAppliedDateEnd.Text.Trim()).AddDays(1).AddTicks(-1)),
            };

            if (!String.IsNullOrEmpty(txtApplyformId.Text.Trim()) && Regex.IsMatch(txtApplyformId.Text.Trim(), "\\d+"))
            {
                parameter.ApplyformId = decimal.Parse(txtApplyformId.Text.Trim());
            }
            if (!string.IsNullOrEmpty(ddlProductType.SelectedValue))
            {
                parameter.ProductType = (ProductType)int.Parse(ddlProductType.SelectedValue);
            }
            parameter.Provider = CurrentCompany.CompanyId;
            return(parameter);
        }
コード例 #5
0
 /// <summary>
 /// 出票方的财务查询待差错退款的申请单
 /// 只能查退/票
 /// </summary>
 public static IEnumerable <ApplyformListView> ProviderQueryBalanceRefundForReturnMoney(ApplyformQueryCondition condition, Pagination pagination)
 {
     if (condition == null)
     {
         throw new ArgumentNullException("condition");
     }
     condition.BalanceRefundProcessStatus = BalanceRefundProcessStatus.AgreedByProviderBusiness;
     condition.ApplyformType = ApplyformType.BlanceRefund;
     return(ProviderQueryApplyforms(condition, pagination));
 }
コード例 #6
0
 /// <summary>
 /// 出票方的财务查询待退款的申请单
 /// 只能查退/票
 /// </summary>
 public static IEnumerable <ApplyformListView> ProviderQueryApplyformsForReturnMoney(ApplyformQueryCondition condition, Pagination pagination)
 {
     if (condition == null)
     {
         throw new ArgumentNullException("condition");
     }
     condition.RefundStatuses = RefundApplyformStatus.AgreedByProviderBusiness;
     condition.ApplyformType  = ApplyformType.Refund | ApplyformType.Scrap;
     return(ProviderQueryApplyforms(condition, pagination));
 }
コード例 #7
0
 /// <summary>
 /// 出票方查询待处理的申请单
 /// 只能查退/票
 /// </summary>
 public static IEnumerable <ApplyformListView> ProviderQueryApplyformsForProcessNew(ApplyformQueryCondition condition, Pagination pagination)
 {
     if (condition == null)
     {
         throw new ArgumentNullException("condition");
     }
     condition.RefundStatuses = RefundApplyformStatus.AppliedForProvider | RefundApplyformStatus.DeniedByProviderTreasurer;
     return(ProviderQueryApplyformsNew(condition, pagination));
 }
コード例 #8
0
 /// <summary>
 /// 平台查询待处理的申请单
 /// </summary>
 public static IEnumerable <ApplyformListView> PlatformQueryApplyformsForProcess(ApplyformQueryCondition condition, Pagination pagination)
 {
     if (condition == null)
     {
         throw new ArgumentNullException("condition");
     }
     condition.RefundStatuses                = RefundApplyformStatus.AppliedForPlatform | RefundApplyformStatus.AppliedForCancelReservation | RefundApplyformStatus.DeniedByProviderBusiness;
     condition.PostponeStatuses              = PostponeApplyformStatus.Applied | PostponeApplyformStatus.Paid;
     condition.RequireRevisePrice            = true;
     condition.IsStatusAndRequireRevisePrice = false;
     return(QueryApplyforms(condition, pagination));
 }
コード例 #9
0
 public object ProviderQueryApplyform(ApplyformQueryCondition condition, Pagination pagination)
 {
     try
     {
         if (condition.ApplyformType == ApplyformType.Refund || condition.ApplyformType == ApplyformType.Scrap)
         {
             if (!string.IsNullOrWhiteSpace(condition.RefundStatusText) && condition.RefundStatusText != "全部")
             {
                 var statues = Service.Order.StatusService.GetRoleRefundApplyformStatus(this.CurrentCompany.CompanyType == CompanyType.Provider ? OrderRole.Provider : OrderRole.Supplier).Where(s => s.Value == condition.RefundStatusText).Select(s => s.Key);
                 if (statues.Any())
                 {
                     condition.ApplyDetailStatus = 0;
                     foreach (var status in statues)
                     {
                         condition.ApplyDetailStatus |= (byte)status;
                     }
                 }
             }
         }
         if (this.CurrentCompany.CompanyType == CompanyType.Provider)
         {
             condition.Provider = CurrentCompany.CompanyId;
         }
         else
         {
             condition.Supplier = CurrentCompany.CompanyId;
         }
         var applyform = Service.ApplyformQueryService.ProviderQueryApplyforms(condition, pagination).Select(form => new
         {
             form.ApplyformId,
             PNR    = form.OriginalPNR == null ? string.Empty : form.OriginalPNR.ToListString(),
             Voyage = form.Flights.Join("<br />",
                                        f => string.Format("{0}-{1}", f.DepartureCity, f.ArrivalCity)),
             FlightInfo = form.Flights.Join("<br />",
                                            f => string.Format(
                                                "{0}{1}<br />{2} / {3}",
                                                f.Carrier,
                                                f.FlightNo,
                                                string.IsNullOrEmpty(f.Bunk) ? "-" : f.Bunk,
                                                getDiscountText
                                                    (f.Discount))),
             TakeoffTime = form.Flights.Join("<br />",
                                             f => f.TakeoffTime.ToString("yyyy-MM-dd<br />HH:mm")),
             Passenger = form.Passengers.Join("<br />"),
             ApplyType = form.ApplyformType.GetDescription(),
             form.ApplyformType,
             ProcessStatus = GetProcessStatus(form,
                                              CurrentCompany.CompanyType == CompanyType.Provider ? OrderRole.Provider : OrderRole.Supplier),
             AppliedTime = form.AppliedTime.ToString("yyyy-MM-dd<br />HH:mm"),
             form.ApplierAccount,
             ProductType = form.ProductType.GetDescription(),
             NeedProcess = form.ApplyformType == ApplyformType.BlanceRefund && ((BalanceRefundProcessStatus)form.ApplyDetailStatus == BalanceRefundProcessStatus.AppliedForProvider || (BalanceRefundProcessStatus)form.ApplyDetailStatus == BalanceRefundProcessStatus.DeniedByProviderTreasurer)
         });
         return(new { Applyforms = applyform, Pagination = pagination });
     }
     catch (Exception ex)
     {
         LogService.SaveExceptionLog(ex);
         throw;
     }
 }
コード例 #10
0
 public object QueryOEMApplyform(ApplyformQueryCondition condition, Pagination pagination)
 {
     try
     {
         var oem = ChinaPay.B3B.Service.Organization.OEMService.QueryOEM(CurrentCompany.CompanyId);
         if (oem == null)
         {
             throw new Exception("没有找到对应的oem信息");
         }
         condition.OEMID = oem.Id;
         if (condition.ApplyformType == ApplyformType.Refund || condition.ApplyformType == ApplyformType.Scrap)
         {
             if (!string.IsNullOrWhiteSpace(condition.RefundStatusText) && condition.RefundStatusText != "全部")
             {
                 var statues = Service.Order.StatusService.GetRoleRefundApplyformStatus(OrderRole.OEMOwner).Where(s => s.Value == condition.RefundStatusText).Select(s => s.Key);
                 if (statues.Any())
                 {
                     condition.ApplyDetailStatus = 0;
                     foreach (var status in statues)
                     {
                         condition.ApplyDetailStatus |= (byte)status;
                     }
                 }
             }
         }
         else if (condition.ApplyformType == ApplyformType.Postpone)
         {
             if (!string.IsNullOrWhiteSpace(condition.PostponeStatusText) && condition.PostponeStatusText != "全部")
             {
                 var statues = Service.Order.StatusService.GetRolePostponeApplyformStatus(OrderRole.OEMOwner).Where(s => s.Value == condition.PostponeStatusText).Select(s => s.Key);
                 if (statues.Any())
                 {
                     condition.ApplyDetailStatus = 0;
                     foreach (var status in statues)
                     {
                         condition.ApplyDetailStatus |= (byte)status;
                     }
                 }
             }
         }
         List <ApplyformListView> forms = ApplyformQueryService.QueryApplyforms(condition, pagination).ToList();
         var lockInfos = LockService.Query(forms.Select(form => form.ApplyformId.ToString())).ToList();
         var applyform = forms.Select(form =>
         {
             LockInfo lockInfo = lockInfos.FirstOrDefault(l => l.Key == form.ApplyformId.ToString());
             return(new
             {
                 form.ApplyformId,
                 PNR = form.OriginalPNR == null ? string.Empty : form.OriginalPNR.ToListString(),
                 Voyage = IEnumerableExtension.Join <FlightListView>(form.Flights, "<br />",
                                                                     f =>
                                                                     string.Format(
                                                                         "{0}{1}-{2}{3}",
                                                                         f.DepartureCity,
                                                                         f.DepartureAirport,
                                                                         f.ArrivalCity,
                                                                         f.ArrivalAirport)),
                 FlightInfo = form.Flights.Join("<br />", f => string.Format(
                                                    "{0}{1}<br />{2} / {3}",
                                                    f.Carrier,
                                                    f.FlightNo,
                                                    string.IsNullOrEmpty(f.Bunk) ? "-" : f.Bunk, getDiscountText
                                                        (f.Discount))),
                 TakeoffTime = form.Flights.Join("<br />", f =>
                                                 f.TakeoffTime.
                                                 ToString(
                                                     "yyyy-MM-dd<br />HH:mm")),
                 Passengers = String.Join("<br />", (IEnumerable <string>)form.Passengers),
                 ApplyTypeDesc = form.ApplyformType.GetDescription(),
                 ApplyType = form.ApplyformType,
                 ProcessStatus = GetProcessStatus(form, OrderRole.OEMOwner),
                 form.AppliedTime,
                 form.ApplierAccount,
                 ProductType = form.ProductType.GetDescription(),
                 LockInfo = lockInfo == null
                                ? string.Empty
                                : lockInfo.Company ==
                            CurrentCompany.CompanyId
                                      ? string.Format("{0}<br />{1}", lockInfo.Account, lockInfo.Name)
                                      : string.Format("{0}<br />({1})", lockInfo.LockRole.GetDescription(), lockInfo.Account),
                 RenderSupperUnLock = lockInfo != null,
                 RefundType = form.RefundType.HasValue ? form.RefundType.GetDescription() : string.Empty,
                 IsRefund = form.ApplyformType == ApplyformType.Refund,
                 EnableQueryPaymentInfo = form.ApplyformType == ApplyformType.Postpone && (PostponeApplyformStatus)form.ApplyDetailStatus == PostponeApplyformStatus.Agreed
             });
         });
         return(new { Applyforms = applyform, Pagination = pagination });
     }
     catch (Exception ex)
     {
         LogService.SaveExceptionLog(ex);
         throw;
     }
 }
コード例 #11
0
 public object PlatformProcessApplyformNew(ApplyformQueryCondition condition, Pagination pagination)
 {
     try
     {
         if (condition.ApplyformType == ApplyformType.Refund || condition.ApplyformType == ApplyformType.Scrap)
         {
             if (!string.IsNullOrWhiteSpace(condition.RefundStatusText) && condition.RefundStatusText != "全部")
             {
                 var statues = Service.Order.StatusService.GetRoleRefundApplyformStatus(OrderRole.Platform).Where(s => s.Value == condition.RefundStatusText).Select(s => s.Key);
                 if (statues.Any())
                 {
                     condition.ApplyDetailStatus = 0;
                     foreach (var status in statues)
                     {
                         condition.ApplyDetailStatus |= (byte)status;
                     }
                 }
             }
         }
         else if (condition.ApplyformType == ApplyformType.Postpone)
         {
             if (!string.IsNullOrWhiteSpace(condition.PostponeStatusText) && condition.PostponeStatusText != "全部")
             {
                 var statues = Service.Order.StatusService.GetRolePostponeApplyformStatus(OrderRole.Platform).Where(s => s.Value == condition.PostponeStatusText).Select(s => s.Key);
                 if (statues.Any())
                 {
                     condition.ApplyDetailStatus = 0;
                     foreach (var status in statues)
                     {
                         condition.ApplyDetailStatus |= (byte)status;
                     }
                 }
             }
         }
         List <ApplyformListView> forms = ApplyformQueryService.PlatformQueryApplyformsForProcessNew(condition, pagination).ToList();
         var lockInfos = LockService.Query(forms.Select(form => form.ApplyformId.ToString())).ToList();
         var date      = DateTime.Now.ToString("yyMMdd");
         var applyform = forms.Select(form =>
         {
             LockInfo lockInfo = lockInfos.FirstOrDefault(l => l.Key == form.ApplyformId.ToString());
             return(new
             {
                 form.ApplyformId,
                 PNR = form.OriginalPNR == null ? string.Empty : form.OriginalPNR.ToListString(),
                 Voyage = form.Flights.Join("<br />",
                                            f =>
                                            string.Format(
                                                "{0}-{1}",
                                                f.DepartureCity,
                                                f.ArrivalCity)),
                 FlightInfo = form.Flights.Join("<br />",
                                                f => string.Format(
                                                    "{0}{1}<br />{2} / {3}",
                                                    f.Carrier,
                                                    f.FlightNo,
                                                    string.IsNullOrEmpty(f.Bunk) ? "-" : f.Bunk, getDiscountText
                                                        (f.Discount))),
                 TakeoffTime = form.Flights.Join("<br />",
                                                 f =>
                                                 f.TakeoffTime.ToString(
                                                     "yyyy-MM-dd<br />HH:mm")),
                 TakeoffTimeIsToday = form.Flights.Join("|", f => f.TakeoffTime.ToString("yyMMdd") == date ? "1" : "0"),
                 Passengers = string.Join("<br />", form.Passengers),
                 ApplyType = form.ApplyformType.GetDescription(),
                 ProcessStatus = form.ApplyformType == ApplyformType.Postpone ?
                                 Service.Order.StatusService.GetPostponeApplyformStatus((PostponeApplyformStatus)form.ApplyDetailStatus, OrderRole.Platform) :
                                 Service.Order.StatusService.GetRefundApplyformStatus((RefundApplyformStatus)form.ApplyDetailStatus, OrderRole.Platform),
                 AppliedTime =
                     form.AppliedTime.ToString("yyyy-MM-dd<br />HH:mm"),
                 form.ApplierAccount,
                 form.ApplyformType,
                 ProductType = form.ProductType.GetDescription(),
                 RefundType = form.RefundType.HasValue ? form.RefundType.GetDescription() : "",
                 form.RequireRevisePrice,
                 LockInfo = lockInfo == null
                                ? string.Empty
                                : lockInfo.Company ==
                            CurrentCompany.CompanyId
                                      ? string.Format("{0}<br />{1}", lockInfo.Account, lockInfo.Name)
                                      : string.Format("{0}<br />({1})", lockInfo.LockRole.GetDescription(),
                                                      lockInfo.Account)
             });
         });
         return(new { Applyforms = applyform, Pagination = pagination });
     }
     catch (Exception ex)
     {
         LogService.SaveExceptionLog(ex);
         throw;
     }
 }