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; }
public XmlDocument PNRImport(string pnrContext, string userName, string sign) { var processor = new InterfaceProcessor.PNRImport(pnrContext, userName, sign); return(processor.Execute()); }
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()); }