コード例 #1
0
 public ProduceOrder(string pnrContext, string associatePNR, string contact, string policyId, string batchNo, string userName, string sign)
     : base(userName, sign)
 {
     //if (string.IsNullOrWhiteSpace(batchNo)) throw new InterfaceInvokeException("1", "导入批次号");
     _pnrImport          = new PNRImport(userName, sign);
     _policyId           = policyId;
     _associatePNR       = associatePNR;
     _contact            = contact;
     _originalPNRContent = pnrContext;
     _pnrContent         = HttpUtility.UrlDecode(pnrContext);
     _orgbatchNo         = batchNo;
 }
コード例 #2
0
        public XmlDocument PNRImport(string pnrContext, string userName, string sign)
        {
            var processor = new InterfaceProcessor.PNRImport(pnrContext, userName, sign);

            return(processor.Execute());
        }
コード例 #3
0
        protected override string ExecuteCore()
        {
            var policyFilterCondition = GetPolicyFilter(_flights);
            //匹配政策
            List <MatchedPolicy> matchedPolicies        = Service.PolicyMatch.PolicyMatchServcie.MatchBunk(policyFilterCondition, false, _pnr.Passengers.First().Type, 10).ToList();
            List <MatchedPolicy> matchedSpeciafPolicies = null;

            if ((_policyType & PolicyType.Special) != PolicyType.Special && (_policyType & PolicyType.Team) != PolicyType.Team)
            {
                policyFilterCondition  = GetPolicyFilter(_flights, PolicyType.Special);
                matchedSpeciafPolicies = Service.PolicyMatch.PolicyMatchServcie.MatchBunk(policyFilterCondition, false, _pnr.Passengers.First().Type, 10).ToList();
                if (!matchedPolicies.Any() && !matchedSpeciafPolicies.Any())
                {
                    throw new InterfaceInvokeException("9", "没有找到相关政策");
                }
            }
            if (!matchedPolicies.Any())
            {
                throw new InterfaceInvokeException("9", "没有找到相关政策");
            }
            StringBuilder str = new StringBuilder();

            str.Append("<policies>");
            PNRImport.GetPolicy(matchedPolicies, matchedSpeciafPolicies, str, _policyType, _flights, InterfaceSetting);
            #region
            //if ((_policyType & PolicyType.Special) != PolicyType.Special)
            //{
            //    var list = from item in matchedPolicies
            //               let generalPolicy = item.OriginalPolicy as IGeneralPolicy
            //               let regulation = item.OriginalPolicy as IHasRegulation
            //               select new
            //               {
            //                   Id = item.Id,
            //                   Type = item.PolicyType == PolicyType.BargainDefault ? (int)PolicyType.Bargain : item.PolicyType == PolicyType.NormalDefault ? (int)PolicyType.Normal : (int)item.PolicyType,
            //                   Fare = item.ParValue.TrimInvaidZero(),
            //                   Rebate = (item.Commission * 100).TrimInvaidZero(),
            //                   Commission = (item.ParValue - item.SettleAmount).TrimInvaidZero(),
            //                   Amount = item.SettleAmount,
            //                   Ticket = (int)(item.OriginalPolicy == null ? TicketType.BSP : item.OriginalPolicy.TicketType),
            //                   EI = ReplaceEnter((regulation == null ? getEI(_flights) : getProvision(regulation))),
            //                   OfficeNo = item.OriginalPolicy == null && item.NeedAUTH ? item.OfficeNumber : (item.OriginalPolicy != null && item.OriginalPolicy.NeedAUTH ? item.OriginalPolicy.OfficeCode : ""),
            //                   Condition = item.OriginalPolicy == null ? "" : item.OriginalPolicy.Condition,
            //                   Confirm = item.ConfirmResource,
            //                   ChangePNR = generalPolicy == null ? false : generalPolicy.ChangePNR,
            //                   EtdzTime = getTimeRange(item.WorkStart, item.WorkEnd),
            //                   RefundTime = getTimeRange(item.WorkStart, item.WorkEnd),
            //                   ScrapTime = getTimeRange(item.RefundStart, item.RefundEnd),
            //                   EtdzSpeed = item.Speed == null ? 0 : item.Speed.ETDZ / 60,
            //                   RefundSpeed = item.Speed == null ? 0 : item.Speed.Refund / 60
            //               };
            //    foreach (var item in list)
            //    {
            //        str.Append("<policy>");
            //        str.AppendFormat("<id>{0}</id>", item.Id);
            //        str.AppendFormat("<type>{0}</type>", item.Type);
            //        str.AppendFormat("<fare>{0}</fare>", item.Fare);
            //        str.AppendFormat("<rebate>{0}</rebate>", item.Rebate);
            //        str.AppendFormat("<commission>{0}</commission>", item.Commission);
            //        str.AppendFormat("<amount>{0}</amount>", item.Amount);
            //        str.AppendFormat("<ticket>{0}</ticket>", item.Ticket);
            //        str.AppendFormat("<ei>{0}</ei>", item.EI);
            //        //需要授权的office号才有,否则为空字符
            //        str.AppendFormat("<officeNo>{0}</officeNo>", item.OfficeNo);
            //        str.AppendFormat("<condition>{0}</condition>", item.Condition);
            //        str.AppendFormat("<confirm>{0}</confirm>", item.Confirm);
            //        str.AppendFormat("<changePNR>{0}</changePNR>", item.ChangePNR ? 1 : 0);
            //        str.AppendFormat("<etdzTime>{0}</etdzTime>", item.EtdzTime);
            //        str.AppendFormat("<refundTime>{0}</refundTime>", item.RefundTime);
            //        str.AppendFormat("<scrapTime>{0}</scrapTime>", item.ScrapTime);
            //        str.AppendFormat("<etdzSpeed>{0}</etdzSpeed>", item.EtdzSpeed);
            //        str.Append("</policy>");
            //    }
            //    if ((_policyType & PolicyType.Team) != PolicyType.Team)
            //    {
            //        var queryList = from item in matchedSpeciafPolicies
            //                        where item != null && item.OriginalPolicy != null
            //                        let specialPolicy = item.OriginalPolicy as SpecialPolicyInfo
            //                        let specialPolicyInfo = SpecialProductService.Query(specialPolicy.Type)
            //                        select new
            //                        {
            //                            Id = item.Id,
            //                            Type = (int)item.PolicyType,
            //                            Fare = item.ParValue.TrimInvaidZero(),
            //                            Rebate = (item.Commission * 100).TrimInvaidZero(),
            //                            Commission = (item.ParValue - item.SettleAmount).TrimInvaidZero(),
            //                            Amount = item.SettleAmount,
            //                            Ticket = (int)(item.OriginalPolicy == null ? TicketType.BSP : item.OriginalPolicy.TicketType),
            //                            EI = ReplaceEnter(getProvision(item.OriginalPolicy as IHasRegulation)),
            //                            OfficeNo = item.OriginalPolicy == null && item.NeedAUTH ? item.OfficeNumber : (item.OriginalPolicy != null && item.OriginalPolicy.NeedAUTH ? item.OriginalPolicy.OfficeCode : ""),
            //                            Condition = item.OriginalPolicy == null ? "" : item.OriginalPolicy.Condition,
            //                            Confirm = item.ConfirmResource,
            //                            ChangePNR = "0",
            //                            EtdzTime = getTimeRange(item.WorkStart, item.WorkEnd),
            //                            RefundTime = getTimeRange(item.WorkStart, item.WorkEnd),
            //                            ScrapTime = getTimeRange(item.RefundStart, item.RefundEnd),
            //                            EtdzSpeed = item.Speed == null ? 0 : item.Speed.ETDZ / 60,
            //                            RefundSpeed = item.Speed == null ? 0 : item.Speed.Refund / 60
            //                        };
            //        foreach (var item in queryList)
            //        {
            //            str.Append("<policy>");
            //            str.AppendFormat("<id>{0}</id>", item.Id);
            //            str.AppendFormat("<type>{0}</type>", item.Type);
            //            str.AppendFormat("<fare>{0}</fare>", item.Fare);
            //            str.AppendFormat("<rebate>{0}</rebate>", item.Rebate);
            //            str.AppendFormat("<commission>{0}</commission>", item.Commission);
            //            str.AppendFormat("<amount>{0}</amount>", item.Amount);
            //            str.AppendFormat("<ticket>{0}</ticket>", item.Ticket);
            //            str.AppendFormat("<ei>{0}</ei>", item.EI);
            //            //需要授权的office号才有,否则为空字符
            //            str.AppendFormat("<officeNo>{0}</officeNo>", item.OfficeNo);
            //            str.AppendFormat("<condition>{0}</condition>", item.Condition);
            //            str.AppendFormat("<confirm>{0}</confirm>", item.Confirm);
            //            str.AppendFormat("<changePNR>{0}</changePNR>", item.ChangePNR);
            //            str.AppendFormat("<etdzTime>{0}</etdzTime>", item.EtdzTime);
            //            str.AppendFormat("<refundTime>{0}</refundTime>", item.RefundTime);
            //            str.AppendFormat("<scrapTime>{0}</scrapTime>", item.ScrapTime);
            //            str.AppendFormat("<etdzSpeed>{0}</etdzSpeed>", item.EtdzSpeed);
            //            str.Append("</policy>");
            //        }
            //        foreach (var item in matchedSpeciafPolicies)
            //        {
            //            if (!matchedPolicies.Contains(item))
            //            {
            //                matchedPolicies.Add(item);
            //            }
            //        }
            //    }
            //}
            //else
            //{
            //    var queryList = from item in matchedPolicies
            //                    let specialPolicy = item.OriginalPolicy as SpecialPolicyInfo
            //                    let specialPolicyInfo = SpecialProductService.Query(specialPolicy.Type)
            //                    where item != null && item.OriginalPolicy != null && !specialPolicy.ConfirmResource
            //                    select new
            //                    {
            //                        Id = item.Id,
            //                        Type = (int)item.PolicyType,
            //                        Fare = item.ParValue.TrimInvaidZero(),
            //                        Rebate = (item.Commission * 100).TrimInvaidZero(),
            //                        Commission = 0,
            //                        Amount = item.SettleAmount,
            //                        Ticket = (int)(item.OriginalPolicy == null ? TicketType.BSP : item.OriginalPolicy.TicketType),
            //                        EI = ReplaceEnter(getProvision(item.OriginalPolicy as IHasRegulation)),
            //                        OfficeNo = item.OriginalPolicy == null && item.NeedAUTH ? item.OfficeNumber : (item.OriginalPolicy != null && item.OriginalPolicy.NeedAUTH ? item.OriginalPolicy.OfficeCode : ""),
            //                        Condition = item.OriginalPolicy == null ? "" : item.OriginalPolicy.Condition,
            //                        Confirm = item.ConfirmResource,
            //                        ChangePNR = "0",
            //                        EtdzTime = getTimeRange(item.WorkStart, item.WorkEnd),
            //                        RefundTime = getTimeRange(item.WorkStart, item.WorkEnd),
            //                        ScrapTime = getTimeRange(item.RefundStart, item.RefundEnd),
            //                        EtdzSpeed = item.Speed == null ? 0 : item.Speed.ETDZ / 60,
            //                        RefundSpeed = item.Speed == null ? 0 : item.Speed.Refund / 60,
            //                        OrganizaPolicy = item.OriginalPolicy
            //                    };
            //    foreach (var item in queryList)
            //    {
            //        str.Append("<policy>");
            //        str.AppendFormat("<id>{0}</id>", item.Id);
            //        str.AppendFormat("<type>{0}</type>", item.Type);
            //        str.AppendFormat("<fare>{0}</fare>", item.Fare);
            //        str.AppendFormat("<rebate>{0}</rebate>", item.Rebate);
            //        str.AppendFormat("<commission>{0}</commission>", item.Commission);
            //        str.AppendFormat("<amount>{0}</amount>", item.Amount);
            //        str.AppendFormat("<ticket>{0}</ticket>", item.Ticket);
            //        str.AppendFormat("<ei>{0}</ei>", item.EI);
            //        //需要授权的office号才有,否则为空字符
            //        str.AppendFormat("<officeNo>{0}</officeNo>", item.OfficeNo);
            //        str.AppendFormat("<condition>{0}</condition>", item.Condition);
            //        str.AppendFormat("<confirm>{0}</confirm>", item.Confirm);
            //        str.AppendFormat("<changePNR>{0}</changePNR>", item.ChangePNR);
            //        str.AppendFormat("<etdzTime>{0}</etdzTime>", item.EtdzTime);
            //        str.AppendFormat("<refundTime>{0}</refundTime>", item.RefundTime);
            //        str.AppendFormat("<scrapTime>{0}</scrapTime>", item.ScrapTime);
            //        str.AppendFormat("<etdzSpeed>{0}</etdzSpeed>", item.EtdzSpeed);
            //        str.Append("</policy>");
            //    }
            //}
            #endregion
            str.Append("</policies>");
            //将匹配出来的政策存入缓存中
            CustomContext context = CustomContext.NewContext();
            context[_pnr.PnrPair.BPNR + _pnr.PnrPair.PNR] = matchedPolicies;
            ContextCenter.Instance.Save(context);
            str.AppendFormat("<batchNo>{0}</batchNo>", context.Id + "1");

            return(str.ToString());
        }