예제 #1
0
        /// <summary>
        /// 确认订单
        /// </summary>
        /// <param name="writer"></param>
        /// <param name="parames"></param>
        public override void Create(ResponseWriter writer, System.Collections.Specialized.NameValueCollection parames)
        {
            var    userLogin       = AuthLogin.GetUserInfo(Username);
            string adultOrderId    = parames["adultOrderId"];
            string childOrderId    = parames["childOrderId"];
            string adultPolicyGuid = parames["adultPolicyGuid"]; //成人政策guid
            string childPolicyGuid = parames["childPolicyGuid"]; //婴儿政策guid
            string remark          = parames["remark"];



            var                adultPolicy = PolicyCacheManager.Get(adultPolicyGuid) as PolicyParamForAPI;
            var                childPolicy = PolicyCacheManager.Get(childPolicyGuid) as PolicyParamForAPI;
            OrderInputParam    InputParam  = createOrderInputParam(adultOrderId, childOrderId);
            Tb_Ticket_OrderBLL orderBLL    = new Tb_Ticket_OrderBLL();

            if (adultPolicy == null)
            {
                writer.WriteEx(554, "Cache is disabled", "政策缓存已失效,请重新操作");
            }
            else
            {
                #region 更新订单 主要修改价格,政策和添加订单账单明细
                Bill bill = new Bill();

                Data d = new Data(userLogin.Company.UninCode);//采购佣金进舍规则: 0.舍去佣金保留到元、1.舍去佣金保留到角、2.舍去佣金保留到分

                string ErrMsg = "";
                bool   IsSuc  = false;
                //扩展参数
                ParamEx pe = new ParamEx();
                pe.UsePIDChannel = userLogin.FQP.KongZhiXiTong != null && userLogin.FQP.KongZhiXiTong.Contains("|48|") ? 2 : 0;
                //发送指令管理类
                SendInsManage SendIns = new SendInsManage(userLogin.User.LoginName, userLogin.Company.UninCode, pe, userLogin.Configparam);
                //提示
                StringBuilder sbTip = new StringBuilder();
                try
                {
                    AjaxPolicyMatchOutData APM = new AjaxPolicyMatchOutData();
                    APM.OutPutPolicyList.Add(adultPolicy);
                    APM.OutPutPolicyList.Add(childPolicy);
                    //供应商Office
                    string GYOffice = userLogin.Configparam != null?userLogin.Configparam.Office.ToUpper() : "";

                    if (InputParam != null && APM != null && APM.OutPutPolicyList != null && APM.OutPutPolicyList.Count > 0)
                    {
                        AjAxPolicyParam AdultPolicy = adultPolicy;
                        AjAxPolicyParam ChildPolicy = childPolicy;

                        //至少选择一条政策 成人或者儿童
                        if (AdultPolicy == null && ChildPolicy == null)
                        {
                            writer.WriteEx(567, "choose one policy at least", "请选择一条政策数据");
                        }

                        else
                        {
                            PatInfo INFPrice = null;

                            if (HasBaby(InputParam))
                            {
                                //婴儿价格
                                INFPrice = GetINFPAT();
                            }
                            //订单实体需要更改数据的字段名
                            List <string> UpdateOrderFileds = new List <string>();
                            //订单修改字段
                            UpdateOrderFileds.AddRange(new string[] { "OldRerurnMoney", "OldPolicyPoint", "OutOrderPayMoney", "A7", "A13", "A1", "A11", "PrintOffice", "CPCpyNo", "YDRemark", "PolicyId", "AirPoint", "PolicyPoint", "ReturnPoint", "PolicyMoney", "PolicyCancelTime", "PolicyReturnTime",
                                                                      "DiscountDetail", "PolicyType", "PolicySource", "AutoPrintFlag", "PolicyRemark", "PMFee", "ABFee", "FuelFee", "BabyFee", "PayMoney", "OrderMoney" });
                            //航段实体需要更改数据的字段名
                            List <string> UpdateSkyWayFileds = new List <string>();
                            //航段修改字段
                            UpdateSkyWayFileds.AddRange(new string[] { "SpacePrice", "ABFee", "FuelFee", "Discount" });
                            //乘客实体需要更改数据的字段名
                            List <string> UpdatePasFileds = new List <string>();
                            //修改乘机人
                            UpdatePasFileds.AddRange(new string[] { "PMFee", "ABFee", "FuelFee" });
                            //承运人二字码
                            string CarrayCode = string.Empty;
                            string orderIDs   = "";
                            //婴儿与编码中的婴儿个数是否不一致 true不一致 false一致
                            bool IsINFCheck = false;
                            //婴儿与编码中的婴儿个数是否不一致提示
                            string INFCountCheckMsg = "<b class=\"red\">编码中婴儿个数与预订婴儿个数不一致,请手动补全编码中婴儿!</b>";
                            //Bill返回有无SQL
                            bool IsBillOK = false;

                            //修改实体相关的值后更新即可
                            for (int i = 0; i < InputParam.OrderParamModel.Count; i++)
                            {
                                OrderMustParamModel item = InputParam.OrderParamModel[i];
                                //承运人二字码
                                CarrayCode = item.Order.CarryCode.Split('/')[0].ToUpper().Trim();

                                if (orderIDs.Contains(item.Order.OrderId))
                                {
                                    continue;
                                }
                                else
                                {
                                    orderIDs += item.Order.OrderId + "|";
                                }

                                #region 设置需要更改数据的字段名集合
                                item.UpdateOrderFileds     = UpdateOrderFileds;
                                item.UpdateSkyWayFileds    = UpdateSkyWayFileds;
                                item.UpdatePassengerFileds = UpdatePasFileds;
                                #endregion

                                #region 实体处理
                                //订单中的总价
                                decimal TotalPMPrice = 0m, TotalABFare = 0, TotalRQFare = 0m;


                                //item.Order.YDRemark = remark;

                                //预订备注信息
                                item.Order.YDRemark = remark;

                                //订单处理 成人订单政策
                                if (!item.Order.IsChdFlag && AdultPolicy != null)
                                {
                                    #region 成人或者婴儿实体价格赋值

                                    //检测白屏预订婴儿个数与编码中的婴儿个数
                                    if (item.Order.OrderSourceType == 1 || item.Order.OrderSourceType == 5)
                                    {
                                        IsINFCheck = yudingINFCheck(InputParam.PnrInfo, item.PasList);
                                    }

                                    //婴儿价格
                                    decimal INFPMFee = 0m, INFABFare = 0m, INFRQFare = 0m;
                                    if (INFPrice != null)
                                    {
                                        decimal.TryParse(INFPrice.Fare, out INFPMFee);
                                        decimal.TryParse(INFPrice.TAX, out INFABFare);
                                        decimal.TryParse(INFPrice.RQFare, out INFRQFare);
                                    }
                                    //成人价格
                                    decimal PMFee = AdultPolicy.SeatPrice, ABFare = AdultPolicy.ABFare, RQFare = AdultPolicy.RQFare;

                                    #region 特价缓存处理
                                    //特价时特价缓存处理  为特价且PAT内容不为空
                                    if (AdultPolicy.PolicyKind == 2 && item.SkyList[0].Pat.Trim() != "")
                                    {
                                        //白屏和PNR导入
                                        if (item.Order.OrderSourceType == 1 || item.Order.OrderSourceType == 2 || item.Order.OrderSourceType == 6 || item.Order.OrderSourceType == 10)
                                        {
                                            //特价缓存
                                            SpecialCabinPriceInfoBLL SpBll     = new SpecialCabinPriceInfoBLL();
                                            PnrAnalysis.FormatPNR    pnrformat = new PnrAnalysis.FormatPNR();
                                            string errMsg            = "";
                                            PnrAnalysis.PatModel Pat = pnrformat.GetPATInfo(item.SkyList[0].Pat.Trim(), out errMsg);
                                            if (Pat.UninuePatList.Count > 0)
                                            {
                                                decimal m_Fare   = 0m;
                                                decimal m_TAX    = 0m;
                                                decimal m_RQFare = 0m;
                                                decimal.TryParse(Pat.UninuePatList[0].Fare, out m_Fare);
                                                decimal.TryParse(Pat.UninuePatList[0].TAX, out m_TAX);
                                                decimal.TryParse(Pat.UninuePatList[0].RQFare, out m_RQFare);
                                                //价格不相等
                                                if (m_Fare != PMFee)
                                                {
                                                    //存入缓存
                                                    SpBll.SaveSpPrice(item.SkyList[0].CarryCode.ToUpper(), item.SkyList[0].FlightCode, item.SkyList[0].FromDate, item.SkyList[0].FromCityCode, item.SkyList[0].ToCityCode, item.SkyList[0].Space, m_Fare, m_TAX, m_RQFare);
                                                }
                                            }
                                        }
                                    }
                                    #endregion


                                    //乘机人实体处理
                                    for (int j = 0; j < item.PasList.Count; j++)
                                    {
                                        if (item.PasList[j].PassengerType == 1)
                                        {
                                            //成人
                                            item.PasList[j].PMFee   = PMFee;
                                            item.PasList[j].ABFee   = ABFare;
                                            item.PasList[j].FuelFee = RQFare;
                                        }
                                        else
                                        {
                                            //婴儿
                                            if (item.PasList[j].PassengerType == 3 && INFPrice != null)
                                            {
                                                item.PasList[j].PMFee   = INFPMFee;
                                                item.PasList[j].ABFee   = INFABFare;
                                                item.PasList[j].FuelFee = INFRQFare;
                                            }
                                        }
                                        if (item.PasList[j].PassengerType == 1 || item.PasList[j].PassengerType == 3)
                                        {
                                            //订单价格
                                            TotalPMPrice += item.PasList[j].PMFee;
                                            TotalABFare  += item.PasList[j].ABFee;
                                            TotalRQFare  += item.PasList[j].FuelFee;
                                        }
                                    }
                                    //航段实体处理
                                    //string Discount = "0";
                                    for (int k = 0; k < item.SkyList.Count; k++)
                                    {
                                        item.SkyList[k].ABFee   = ABFare;
                                        item.SkyList[k].FuelFee = RQFare;
                                        //只是单程才重新赋值
                                        if (item.SkyList.Count == 1)
                                        {
                                            item.SkyList[k].SpacePrice = PMFee;
                                        }
                                        //item.SkyList[k].Discount = AdultPolicy.DiscountRate.ToString();
                                        //if (Discount.Length > 10)
                                        //{
                                        //    Discount = Discount.Substring(0, 10);
                                        //}
                                        //item.SkyList[k].Discount = Discount;
                                    }
                                    //成人订单(含有婴儿) 赋值
                                    item.Order.PMFee   = TotalPMPrice;
                                    item.Order.ABFee   = TotalABFare;
                                    item.Order.FuelFee = TotalRQFare;
                                    if (INFPrice != null)
                                    {
                                        //婴儿票面价
                                        item.Order.BabyFee = INFPMFee;
                                    }
                                    item.Order.PolicyId         = AdultPolicy.PolicyId;
                                    item.Order.PolicyPoint      = AdultPolicy.PolicyPoint;
                                    item.Order.ReturnMoney      = AdultPolicy.PolicyReturnMoney;
                                    item.Order.AirPoint         = AdultPolicy.AirPoint;
                                    item.Order.ReturnPoint      = AdultPolicy.ReturnPoint;
                                    item.Order.LaterPoint       = AdultPolicy.LaterPoint;
                                    item.Order.PolicyMoney      = AdultPolicy.PolicyYongJin;
                                    item.Order.DiscountDetail   = AdultPolicy.DiscountDetail;
                                    item.Order.PolicyType       = int.Parse(AdultPolicy.PolicyType);
                                    item.Order.PolicySource     = int.Parse(AdultPolicy.PolicySource);
                                    item.Order.AutoPrintFlag    = int.Parse(AdultPolicy.AutoPrintFlag);
                                    item.Order.PolicyCancelTime = AdultPolicy.FPGQTime;
                                    item.Order.PolicyReturnTime = AdultPolicy.PolicyReturnTime;
                                    //出票公司编号
                                    string CPCpyNo = string.IsNullOrEmpty(AdultPolicy.CPCpyNo) ? userLogin.mSupCompany.UninCode : AdultPolicy.CPCpyNo;
                                    item.Order.CPCpyNo = CPCpyNo.Length > 12 ? CPCpyNo.Substring(0, 12) : CPCpyNo;

                                    item.Order.PolicyRemark = AdultPolicy.PolicyRemark;//政策备注
                                    //原始政策返点
                                    item.Order.OldPolicyPoint = AdultPolicy.OldPolicyPoint;
                                    //原始政策现返
                                    item.Order.OldReturnMoney = AdultPolicy.OldPolicyReturnMoney;

                                    item.Order.A1  = 1;                      //已确认
                                    item.Order.A2  = AdultPolicy.PolicyKind; //政策种类
                                    item.Order.A7  = AdultPolicy.AirPoint;   //航空公司返点
                                    item.Order.A11 = AdultPolicy.PatchPonit; //补点


                                    ////计算订单金额
                                    //item.Order.PayMoney = d.CreateOrderPayMoney(item.Order, item.PasList);
                                    ////出票方收款金额
                                    //item.Order.OrderMoney = d.CreateOrderOrderMoney(item.Order, item.PasList);

                                    bill.CreateOrderAndTicketPayDetailNew(item.Order, item.PasList);


                                    //出票Office
                                    if (AdultPolicy.PolicyOffice != "")
                                    {
                                        item.Order.PrintOffice = AdultPolicy.PolicyOffice;
                                    }
                                    if ((item.Order.OrderSourceType == 1 || item.Order.OrderSourceType == 2))
                                    {
                                        //自动授权Office
                                        if (AdultPolicy.PolicyOffice.Trim().Length == 6 && !GYOffice.Contains(AdultPolicy.PolicyOffice.Trim().ToUpper()))
                                        {
                                            SendIns.AuthToOffice(item.Order.PNR, AdultPolicy.PolicyOffice, item.Order.Office, out ErrMsg);
                                        }
                                        //备注HU的A舱要添加一个指令才能入库,OSI HU CKIN SSAC/S1
                                        if (AdultPolicy.PolicySource == "1" && AdultPolicy.PolicyType == "1" && AdultPolicy.AutoPrintFlag == "2" && item.Order.PNR.Trim().Length == 6 && item.Order.CarryCode.ToUpper().Trim() == "HU" && item.Order.Space.ToUpper().Trim() == "A")
                                        {
                                            string Office = item.Order.Office, Cmd = string.Format("RT{0}|OSI HU CKIN SSAC/S1^\\", item.Order.PNR.Trim());
                                            SendIns.Send(Cmd, ref Office, 10);
                                        }
                                    }
                                    if (item.Order.PolicySource <= 2)
                                    {
                                        //本地政策提示
                                        sbTip.Append("</br><ul><li>1.请于一小时内支付此订单,未支付将自动取消</li><li>2.编码内容中必须存在证件内容一项</li><li>3.PNR需要包含证件号</li><li>" + (IsINFCheck ? "4." + INFCountCheckMsg : "") + "</li></ul>");
                                    }
                                    else
                                    {
                                        //接口和共享政策提示
                                        if (AdultPolicy.PolicyOffice.Trim().Length == 6)
                                        {
                                            sbTip.Append("</br><ul><li>1.编码内容中必须存在证件内容一项</li><li>2.PNR需要包含证件号</li><li>3.请授权,授权指令:RMK TJ AUTH " + AdultPolicy.PolicyOffice + "</li>" + (IsINFCheck ? "4." + INFCountCheckMsg : "") + "</ul>");
                                        }
                                        else
                                        {
                                            sbTip.Append("<ul ><li>1.编码内容中必须存在证件内容一项!</li><li>2.PNR需要包含证件号!</li>" + (IsINFCheck ? "3." + INFCountCheckMsg : "") + "</ul>");
                                        }
                                    }

                                    #endregion
                                }
                                else
                                {
                                    if (ChildPolicy != null)
                                    {
                                        #region 儿童实体赋值
                                        //儿童订单政策

                                        //儿童价格
                                        decimal PMFee = ChildPolicy.SeatPrice, ABFare = ChildPolicy.ABFare, RQFare = ChildPolicy.RQFare;
                                        //乘机人实体处理
                                        for (int j = 0; j < item.PasList.Count; j++)
                                        {
                                            if (item.PasList[j].PassengerType == 2)
                                            {
                                                //儿童
                                                item.PasList[j].PMFee   = PMFee;
                                                item.PasList[j].ABFee   = ABFare;
                                                item.PasList[j].FuelFee = RQFare;
                                                //订单价格
                                                TotalPMPrice += item.PasList[j].PMFee;
                                                TotalABFare  += item.PasList[j].ABFee;
                                                TotalRQFare  += item.PasList[j].FuelFee;
                                            }
                                        }
                                        //航段实体处理
                                        //string Discount = "0";
                                        for (int k = 0; k < item.SkyList.Count; k++)
                                        {
                                            item.SkyList[k].ABFee   = ABFare;
                                            item.SkyList[k].FuelFee = RQFare;
                                            //只是单程才重新赋值
                                            if (item.SkyList.Count == 1)
                                            {
                                                item.SkyList[k].SpacePrice = PMFee;
                                            }
                                            //Discount = ChildPolicy.DiscountRate.ToString();
                                            //if (Discount.Length > 10)
                                            //{
                                            //    Discount = Discount.Substring(0, 10);
                                            //}
                                            //item.SkyList[k].Discount = Discount;
                                        }
                                        //儿童订单赋值
                                        item.Order.PMFee   = TotalPMPrice;
                                        item.Order.ABFee   = TotalABFare;
                                        item.Order.FuelFee = TotalRQFare;
                                        //出票公司编号
                                        string CPCpyNo = string.IsNullOrEmpty(ChildPolicy.CPCpyNo) ? userLogin.mSupCompany.UninCode : ChildPolicy.CPCpyNo;
                                        item.Order.CPCpyNo          = CPCpyNo.Length > 12 ? CPCpyNo.Substring(0, 12) : CPCpyNo;
                                        item.Order.PolicyId         = ChildPolicy.PolicyId;
                                        item.Order.AirPoint         = ChildPolicy.AirPoint;
                                        item.Order.PolicyPoint      = ChildPolicy.PolicyPoint;
                                        item.Order.ReturnPoint      = ChildPolicy.ReturnPoint;
                                        item.Order.LaterPoint       = ChildPolicy.LaterPoint;
                                        item.Order.ReturnMoney      = ChildPolicy.PolicyReturnMoney;
                                        item.Order.PolicyMoney      = ChildPolicy.PolicyYongJin;
                                        item.Order.DiscountDetail   = ChildPolicy.DiscountDetail;
                                        item.Order.PolicyType       = int.Parse(ChildPolicy.PolicyType);
                                        item.Order.PolicySource     = int.Parse(ChildPolicy.PolicySource);
                                        item.Order.AutoPrintFlag    = int.Parse(ChildPolicy.AutoPrintFlag);
                                        item.Order.PolicyCancelTime = ChildPolicy.FPGQTime;
                                        item.Order.PolicyReturnTime = ChildPolicy.PolicyReturnTime;
                                        item.Order.PolicyRemark     = ChildPolicy.PolicyRemark;//政策备注
                                        //原始政策返点
                                        item.Order.OldPolicyPoint = ChildPolicy.OldPolicyPoint;
                                        //原始政策现返
                                        item.Order.OldReturnMoney = ChildPolicy.OldPolicyReturnMoney;

                                        item.Order.A1 = 1;                    //已确认
                                        item.Order.A7 = ChildPolicy.AirPoint; //航空公司返点
                                        //政策种类
                                        item.Order.A2 = ChildPolicy.PolicyKind;

                                        ////计算订单金额;
                                        //item.Order.PayMoney = d.CreateOrderPayMoney(item.Order, item.PasList);
                                        ////出票方收款金额
                                        //item.Order.OrderMoney = d.CreateOrderOrderMoney(item.Order, item.PasList);

                                        bill.CreateOrderAndTicketPayDetailNew(item.Order, item.PasList);

                                        //出票Office
                                        if (ChildPolicy.PolicyOffice != "")
                                        {
                                            item.Order.PrintOffice = ChildPolicy.PolicyOffice;
                                        }
                                        //---------------------------------------

                                        #endregion
                                    }
                                }

                                //代付返点,金额
                                if (item.Order.PolicySource > 2)
                                {
                                    // 接口 取原始政策
                                    item.Order.A7 = item.Order.OldPolicyPoint;
                                    item.Order.OutOrderPayMoney = d.CreateOrderIntfacePrice(item.Order, item.PasList);
                                }
                                else
                                {
                                    //本地 取航空公司政策
                                    decimal tempOldPolicyPoint = item.Order.OldPolicyPoint;

                                    item.Order.OldPolicyPoint   = item.Order.A7;
                                    item.Order.OutOrderPayMoney = d.CreateOrderIntfacePrice(item.Order, item.PasList);
                                    item.Order.OldPolicyPoint   = tempOldPolicyPoint;
                                }

                                item.Order.A13 = d.CreateOrderIntfacePrice(item.Order, item.PasList);// 后返金额

                                #endregion

                                #region 添加订单账单明细sql
                                List <string> sqlList = bill.CreateOrderAndTicketPayDetailNew(item.Order, item.PasList);
                                if (sqlList != null && sqlList.Count > 0)
                                {
                                    IsBillOK = true;
                                    InputParam.ExecSQLList.AddRange(sqlList.ToArray());
                                }
                                #endregion
                            }//For结束
                            //订单金额是否有误
                            bool IsOrderPayZero = false;
                            foreach (OrderMustParamModel item in InputParam.OrderParamModel)
                            {
                                //判断金额是否正确
                                if (item.Order.PayMoney <= 0 || ((item.Order.PayMoney + item.Order.PayMoney * 0.003M) < item.Order.OrderMoney))
                                {
                                    IsOrderPayZero = true;
                                    PbProject.WebCommon.Log.Log.RecordLog("OrderServices", "PayMoneyError|" + ErrMsg + "订单:PayMoney=" + item.Order.PayMoney + " OrderMoney=" + item.Order.OrderMoney + "SQL:" + string.Join("\r\n  ", InputParam.ExecSQLList.ToArray()), true, HttpContext.Current.Request);
                                    //  DataBase.LogCommon.Log.Error("OrderServices", new Exception(ErrMsg + "订单:PayMoney=" + item.Order.PayMoney + " OrderMoney=" + item.Order.OrderMoney + "SQL:" + string.Join("\r\n  ", InputParam.ExecSQLList.ToArray())));
                                    break;
                                }
                            }
                            #region 验证和修改订单
                            if (!IsBillOK)
                            {
                                ErrMsg = "订单生成失败!!";
                                PbProject.WebCommon.Log.Log.RecordLog("OrderServices", "时间:" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\t" + ErrMsg + "SQL:" + string.Join("\r\n  ", InputParam.ExecSQLList.ToArray()), true, HttpContext.Current.Request);
                            }
                            else
                            {
                                if (!IsOrderPayZero)
                                {
                                    //修改订单有关实体信息
                                    IsSuc = orderBLL.UpdateOrder(ref InputParam, out ErrMsg);
                                    if (IsSuc)
                                    {
                                        ErrMsg = "订单生成成功!" + sbTip.ToString();
                                    }
                                    else
                                    {
                                        PbProject.WebCommon.Log.Log.RecordLog("OrderServices", "时间:" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\t" + ErrMsg + "SQL:" + string.Join("\r\n  ", InputParam.ExecSQLList.ToArray()), true, HttpContext.Current.Request);
                                        ErrMsg = "订单生成失败!";
                                    }
                                }
                                else
                                {
                                    PbProject.WebCommon.Log.Log.RecordLog("OrderServices", "时间:" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\t" + ErrMsg + "SQL:" + string.Join("\r\n  ", InputParam.ExecSQLList.ToArray()), true, HttpContext.Current.Request);
                                    ErrMsg = "订单金额错误,生成订单失败!";
                                }
                            }
                            #endregion
                        }
                    }
                    else
                    {
                        ErrMsg = "未获取到政策数据,生成订单失败!";
                    }
                }
                catch (Exception ex)
                {
                    PbProject.WebCommon.Log.Log.RecordLog("OrderServices", "时间:" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\t" + ErrMsg, true, HttpContext.Current.Request);
                    ErrMsg = "订单生成异常," + ex.Message;
                    DataBase.LogCommon.Log.Error("OrderServices" + userLogin.User.id.ToString(), ex);
                }
                finally
                {
                    if (IsSuc)
                    {
                        writer.Write("ok");
                    }
                    else
                    {
                        writer.WriteEx(567, "confirm Order Error", ErrMsg);
                    }
                }
                #endregion
            }
        }
예제 #2
0
        /// <summary>
        /// 生成没有政策信息的订单,确定订单时回写政策数据
        /// </summary>
        /// <param name="FQP"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        private bool GenerationOrder(UserLoginInfo userLogin, List <Tb_Ticket_SkyWay> skyWay, List <Tb_Ticket_Passenger> pasList, RePnrObj pnrInfo, out string msg)
        {
            bool IsSuc = false;

            msg = "";
            //儿童备注关联成人编码
            string RmkAdultPnr = "";
            //是否为两个订单
            bool IsSecOrder   = false;
            bool IsExistAdult = false;
            bool IsExistCHD   = false;
            bool IsExistINF   = false;

            try
            {
                Tb_Ticket_Order AdultOrder = null, ChildOrder = null;
                if (userLogin.Company == null || userLogin.BaseParametersList == null)
                {
                    msg = "mCompany公司信息丢失";
                    return(IsSuc);
                }
                //订单管理
                Tb_Ticket_OrderBLL  OrderManage = new Tb_Ticket_OrderBLL();
                OrderInputParam     OrderParam  = new OrderInputParam();
                OrderMustParamModel ParamModel  = new OrderMustParamModel();

                //构造生成订单需要的信息
                List <Tb_Ticket_SkyWay> SkyWay1 = skyWay;
                //构造乘客信息
                List <Tb_Ticket_Passenger> Paslist = pasList;
                //订单日志记录
                Log_Tb_AirOrder logOrder = new Log_Tb_AirOrder();
                logOrder.OperTime      = DateTime.Now;
                logOrder.OperType      = "创建订单";
                logOrder.OperContent   = userLogin.User.LoginName + "于" + logOrder.OperTime + "创建订单。";
                logOrder.OperLoginName = userLogin.User.LoginName;
                logOrder.OperUserName  = userLogin.User.UserName;
                logOrder.CpyNo         = userLogin.Company.UninCode;
                logOrder.CpyName       = userLogin.Company.UninName;
                logOrder.CpyType       = userLogin.Company.RoleType;
                logOrder.WatchType     = 5;
                if (IsExistCHD)
                {
                    //添加权限 是否可以预定儿童票 未加
                    if (userLogin.FQP.GongYingKongZhiFenXiao != null && userLogin.FQP.GongYingKongZhiFenXiao.Contains("|90|"))
                    {
                        msg = "目前暂时无法预订儿童票!";
                    }
                }

                //关联成人订单号
                if (isAsAdultOrder)
                {
                    #region 关联成人订单号
                    //开启儿童编码必须关联成人编码或者成人订单号
                    if (userLogin.FQP.KongZhiXiTong != null && userLogin.FQP.KongZhiXiTong.Contains("|95|"))
                    {
                        string sqlWhere = "";
                        //儿童订单关联成人订单号
                        if (cHDAssociationAdultOrderId == "")
                        {
                            msg = "关联成人订单不能为空!";
                        }
                        else
                        {
                            sqlWhere = string.Format(" OrderId='{0}' ", cHDAssociationAdultOrderId);

                            List <Tb_Ticket_Order> list = baseDataManage.CallMethod("Tb_Ticket_Order", "GetList", null, new object[] { sqlWhere }) as List <Tb_Ticket_Order>;
                            if (list != null && list.Count > 0)
                            {
                                if (list[0].IsChdFlag)
                                {
                                    msg = "该订单非成人订单!";
                                }
                                else
                                {
                                    if (string.IsNullOrEmpty(list[0].PNR))
                                    {
                                        msg = "该订单还未生成编码!";
                                    }
                                    else if (list[0].OrderStatusCode < 4)
                                    {
                                        msg = "关联成人订单未出票!";
                                    }
                                    else
                                    {
                                        RmkAdultPnr = list[0].PNR;
                                    }
                                    //添加权限是否验证 儿童航段与关联成人航段信息是否一致 还未加权限
                                    if (userLogin.FQP.KongZhiXiTong == null || !userLogin.FQP.KongZhiXiTong.Contains("|91|"))
                                    {
                                        if (msg == "" && !ValSkyWay(cHDAssociationAdultOrderId, SkyWay1))
                                        {
                                            msg = "成人订单航程与儿童订单航程信息不一致,无法预定!";
                                        }
                                    }
                                }
                            }
                            else
                            {
                                msg = "关联成人订单不存在!";
                            }
                        }
                    }
                    #endregion
                }
                //关联订单号通过
                if (msg == "")
                {
                    #region 生成编码记录编码信息
                    //航空公司 出票Office 和儿童编码所备注的成人编码
                    string defaultOffice = userLogin.Configparam.Office.Split('^')[0];
                    string CpyNo = userLogin.Company.UninCode, CarryCode = SkyWay1[0].CarryCode;
                    string PrintOffice = GetPrintOffice(CpyNo, CarryCode);
                    if (!string.IsNullOrEmpty(PrintOffice))
                    {
                        //Office = PrintOffice;
                    }

                    //记录指令
                    SaveInsInfo(pnrInfo, userLogin);
                    pnrInfo.PrintOffice = PrintOffice;
                    //记录Pnr日志Id=
                    List <string> pnrLogList = new List <string>();
                    string        AdultPnr   = string.Empty;
                    string        childPnr   = string.Empty;
                    //成人预订信息编码记录
                    if (pnrInfo.AdultYudingList.Count > 0)
                    {
                        AdultPnr = pnrInfo.AdultPnr;
                        if (string.IsNullOrEmpty(AdultPnr) || AdultPnr.Trim().Length != 6)
                        {
                            //提示pnr失败信息
                            string yudingRecvData = pnrInfo.AdultYudingList.Values[0];
                            msg      = ShowPnrFailInfo(1, yudingRecvData);
                            AdultPnr = "";
                        }
                        //记录编码日志
                        YuDingPnrLog(userLogin, pnrInfo, pnrInfo.AdultYudingList.Keys[0], pnrInfo.AdultYudingList.Values[0], AdultPnr, pnrInfo.Office, ref pnrLogList);
                        if (AdultPnr.Length == 6 && (pnrInfo.PatModelList[0] == null || pnrInfo.PatModelList[0].PatList.Count == 0))
                        {
                            msg = "成人编码" + AdultPnr + "未能PAT取到价格,原因如下:<br />" + pnrInfo.PatList[0];
                        }
                    }
                    //儿童预订信息编码记录
                    if (pnrInfo.ChildYudingList.Count > 0)
                    {
                        childPnr = pnrInfo.childPnr;
                        if (string.IsNullOrEmpty(childPnr) || childPnr.Trim().Length != 6)
                        {
                            //提示pnr失败信息
                            string yudingRecvData = pnrInfo.ChildYudingList.Values[0];
                            msg      = ShowPnrFailInfo(2, yudingRecvData);
                            childPnr = "";
                        }
                        //记录编码日志
                        YuDingPnrLog(userLogin, pnrInfo, pnrInfo.ChildYudingList.Keys[0], pnrInfo.ChildYudingList.Values[0], childPnr, pnrInfo.Office, ref pnrLogList);
                        if (childPnr.Length == 6 && (pnrInfo.PatModelList[1] == null || pnrInfo.PatModelList[1].PatList.Count == 0))
                        {
                            msg = "儿童编码" + childPnr + "未能PAT取到价格,原因如下:<br />" + pnrInfo.PatList[0];
                        }
                    }
                    #endregion

                    #region 组合生成订单所需要的实体数据
                    //成人+婴儿 成人+成人 儿童+备注成人订单号  只生成一个订单
                    //成人+儿童且没有备注订单号  成人+儿童+婴儿   生成两个订单
                    //存在儿童 也存在成人
                    if (IsExistCHD && IsExistAdult)
                    {
                        if (!isAsAdultOrder)
                        {
                            IsSecOrder = true;
                            //生成儿童订单
                            List <Tb_Ticket_SkyWay> SkyWay2 = skyWay;
                            //儿童乘客列表
                            List <Tb_Ticket_Passenger> ChildList = new List <Tb_Ticket_Passenger>();
                            foreach (Tb_Ticket_Passenger pas in Paslist)
                            {
                                if (pas.PassengerType == 2)
                                {
                                    ChildList.Add(pas);
                                }
                            }
                            ChildOrder = GetOrder(userLogin, true, ChildList, SkyWay2);
                            Log_Tb_AirOrder logOrder1 = new Log_Tb_AirOrder();
                            logOrder1.OperTime      = DateTime.Now;
                            logOrder1.OperType      = "创建订单";
                            logOrder1.OperContent   = userLogin.User.LoginName + "于" + logOrder.OperTime + "创建订单。";
                            logOrder1.OperLoginName = userLogin.User.LoginName;
                            logOrder1.OperUserName  = userLogin.User.UserName;
                            logOrder1.CpyNo         = userLogin.Company.UninCode;
                            logOrder1.CpyName       = userLogin.Company.UninName;
                            logOrder1.CpyType       = userLogin.Company.RoleType;
                            logOrder1.WatchType     = 5;

                            //加入参数
                            OrderMustParamModel ParamModel1 = new OrderMustParamModel();
                            OrderParam.PnrInfo   = pnrInfo;
                            ParamModel1.PasList  = ChildList;
                            ParamModel1.SkyList  = SkyWay2;
                            ParamModel1.Order    = ChildOrder;
                            ParamModel1.LogOrder = logOrder1;
                            //加入集合
                            OrderParam.OrderParamModel.Add(ParamModel1);
                        }
                    }
                    //为两个订单时
                    if (IsSecOrder)
                    {
                        //排除儿童乘客
                        List <Tb_Ticket_Passenger> NotCHDList = new List <Tb_Ticket_Passenger>();
                        foreach (Tb_Ticket_Passenger item in Paslist)
                        {
                            if (item.PassengerType != 2)
                            {
                                NotCHDList.Add(item);
                            }
                        }
                        Paslist    = NotCHDList;
                        AdultOrder = GetOrder(userLogin, false, Paslist, SkyWay1);
                    }
                    else
                    {
                        //为一个订单时
                        AdultOrder = GetOrder(userLogin, IsExistCHD, Paslist, SkyWay1);
                        if (isAsAdultOrder)
                        {
                            AdultOrder.PNR = RmkAdultPnr;
                            AdultOrder.AssociationOrder = cHDAssociationAdultOrderId;
                        }
                    }
                    //  是否有婴儿
                    AdultOrder.HaveBabyFlag = IsExistINF;
                    //
                    OrderParam.PnrInfo  = pnrInfo;
                    ParamModel.PasList  = Paslist;
                    ParamModel.SkyList  = SkyWay1;
                    ParamModel.Order    = AdultOrder;
                    ParamModel.LogOrder = logOrder;
                    //加入集合
                    OrderParam.OrderParamModel.Add(ParamModel);
                    #endregion
                    if (pnrLogList.Count > 0 && !(AdultPnr == "" && childPnr == ""))
                    {
                        string UpdatePnrLogSQL = string.Format(" update Log_Pnr set OrderFlag=1 where id in({0}) ", string.Join(",", pnrLogList.ToArray()));
                        OrderParam.ExecSQLList.Add(UpdatePnrLogSQL);
                    }
                }
                //前面都通过
                if (msg == "")
                {
                    string ErrMsg = "";
                    //生成订单
                    IsSuc = OrderManage.CreateOrder(ref OrderParam, out ErrMsg);
                    List <string> Paramlist = new List <string>();
                    //两个订单url处理
                    foreach (OrderMustParamModel item in OrderParam.OrderParamModel)
                    {
                        if (item.Order.IsChdFlag)
                        {
                            Paramlist.Add("ChildOrderId=" + item.Order.OrderId);
                        }
                        else
                        {
                            Paramlist.Add("AdultOrderId=" + item.Order.OrderId);
                        }
                    }
                    if (IsSuc)
                    {
                        msg = string.Join("&", Paramlist.ToArray());
                    }
                    else
                    {
                        //出错信息
                        msg = ErrMsg;
                    }
                }
            }
            catch (Exception ex)
            {
                //异常信息
                msg   = ex.Message;
                IsSuc = false;
            }
            return(IsSuc);
        }
예제 #3
0
    //生成订单
    public void Create_Click()
    {
        string Msg    = "";
        bool   IsSuc  = false;
        string ErrMsg = "";

        try
        {
            if (mCompany == null)
            {
                Msg = "0##订单生成成失败!原因如下<br />页面已过期,请刷新页面或者重新登录!##";
            }
            else
            {
                //订单管理
                Tb_Ticket_OrderBLL OrderManage = new Tb_Ticket_OrderBLL();
                string             data        = Request["data"].ToString();
                PnrImportParam     PImport     = JsonHelper.JsonToObj <PnrImportParam>(data);
                if (PImport != null)
                {
                    OrderMustParamModel item = PImport.OrderParam.OrderParamModel[0];

                    //航段---------------------------------------------------------
                    List <string> CarryCodeList  = new List <string>();
                    List <string> FlightCodeList = new List <string>();
                    List <string> TravelList     = new List <string>();
                    List <string> AirTimeList    = new List <string>();
                    List <string> TravelCodeList = new List <string>();
                    List <string> SpaceList      = new List <string>();
                    List <string> DisCountList   = new List <string>();
                    for (int i = 0; i < item.SkyList.Count; i++)
                    {
                        CarryCodeList.Add(item.SkyList[i].CarryCode);
                        FlightCodeList.Add(item.SkyList[i].FlightCode);
                        AirTimeList.Add(item.SkyList[i].FromDate.ToString("yyyy-MM-dd HH:mm"));
                        TravelList.Add(item.SkyList[i].FromCityName + "-" + item.SkyList[i].ToCityName);
                        TravelCodeList.Add(item.SkyList[i].FromCityCode + "-" + item.SkyList[i].ToCityCode);
                        SpaceList.Add(item.SkyList[i].Space);
                        DisCountList.Add(item.SkyList[i].Discount);
                    }
                    item.Order.CarryCode  = string.Join("/", CarryCodeList.ToArray());
                    item.Order.FlightCode = string.Join("/", FlightCodeList.ToArray());
                    item.Order.AirTime    = DateTime.Parse(AirTimeList[0]);
                    item.Order.Travel     = string.Join("/", TravelList.ToArray());
                    item.Order.TravelCode = string.Join("/", TravelCodeList.ToArray());
                    item.Order.Space      = string.Join("/", SpaceList.ToArray());
                    item.Order.Discount   = string.Join("/", DisCountList.ToArray());
                    //------------------------------------------------------------------------------------
                    //备注
                    item.Order.YDRemark = HttpUtility.UrlDecode(Request["Remark"].ToString(), Encoding.Default);//txtRemark.Value.Trim();//订单生成备注
                    //订单中的总价
                    decimal TotalPMPrice = 0m, TotalABFare = 0, TotalRQFare = 0m;
                    decimal PolicyMoney = 0m;                         //订单佣金
                    Data    d           = new Data(this.mUser.CpyNo); //采购佣金进舍规则: 0.舍去佣金保留到元、1.舍去佣金保留到角、2.舍去佣金保留到分

                    //乘客人数
                    item.Order.PassengerNumber = item.PasList.Count;
                    //乘客姓名 已"|"分割
                    List <string> PasNameList = new List <string>();
                    //乘机人实体处理
                    for (int j = 0; j < item.PasList.Count; j++)
                    {
                        //订单价格
                        TotalPMPrice += item.PasList[j].PMFee;
                        TotalABFare  += item.PasList[j].ABFee;
                        TotalRQFare  += item.PasList[j].FuelFee;
                        if (item.PasList[j].PassengerType == 1 || item.PasList[j].PassengerType == 2)
                        {
                            PolicyMoney = d.CreateCommissionCG(item.PasList[j].PMFee, item.Order.PolicyPoint);
                        }
                        //订单中的乘客显示
                        PasNameList.Add(item.PasList[j].PassengerName);
                    }
                    //乘客姓名
                    item.Order.PassengerName = string.Join("|", PasNameList.ToArray());

                    //订单赋值
                    item.Order.PMFee   = TotalPMPrice;
                    item.Order.ABFee   = TotalABFare;
                    item.Order.FuelFee = TotalRQFare;
                    //政策返点
                    item.Order.PolicyPoint = item.Order.PolicyPoint;
                    //最终返点
                    item.Order.ReturnPoint = item.Order.ReturnPoint;
                    //原始政策返点
                    item.Order.OldPolicyPoint = item.Order.PolicyPoint;
                    if (mCompany.RoleType == 1)
                    {
                        //出票公司编号
                        item.Order.CPCpyNo = string.IsNullOrEmpty(PImport.m_SupCompany.UninCode) ? PImport.m_SupCompany.UninCode : "";
                    }
                    else
                    {
                        //出票公司编号
                        item.Order.CPCpyNo = mCompany.UninCode;
                    }
                    //出票公司编号
                    item.Order.CPCpyNo = item.Order.CPCpyNo.Length > 12 ? item.Order.CPCpyNo.Substring(0, 12) : item.Order.CPCpyNo;
                    //item.Order.PayMoney = d.CreateOrderPayMoney(item.Order, item.PasList);//计算订单金额
                    //item.Order.OrderMoney = d.CreateOrderOrderMoney(item.Order, item.PasList);
                    Bill bill = new Bill();
                    bill.CreateOrderAndTicketPayDetailNew(item.Order, item.PasList);

                    //佣金
                    item.Order.PolicyMoney = PolicyMoney;
                    item.Order.A1          = 1;//已确认

                    //开启添加订单账单明细sql
                    PImport.OrderParam.IsCreatePayDetail = 1;
                    //判断金额是否正确
                    if (item.Order.PayMoney <= 0 || item.Order.OrderMoney <= 0 || ((item.Order.PayMoney + item.Order.PayMoney * 0.003M) < item.Order.OrderMoney))
                    {
                        Msg = "0##订单生成成失败!原因如下<br />订单金额有误##";
                    }
                    else
                    {
                        //生成订单
                        IsSuc = OrderManage.CreateOrder(ref PImport.OrderParam, out ErrMsg);
                        if (IsSuc)
                        {
                            Msg = "1##订单生成成功!##" + "订单号:" + PImport.OrderParam.OrderParamModel[0].Order.OrderId;
                        }
                        else
                        {
                            Msg = "0##订单生成成失败!原因如下<br />" + ErrMsg + "##";
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            Msg = "0##页面异常!原因如下<br />" + ex.Message + "##";
            //DataBase.LogCommon.Log.Error("HandPnrImport.aspx:" + ErrMsg, ex);
            PnrAnalysis.LogText.LogWrite("HandPnrImport.aspx:" + ErrMsg + "|" + ex.Message, "HandPnrImport");
        }
        finally
        {
            PnrAnalysis.LogText.LogWrite("HandPnrImport.aspx:" + Msg + "\r\n", "HandPnrImport");
            OutPut(Msg);
        }
    }
예제 #4
0
    /// <summary>
    /// 获取打印数据
    /// </summary>
    /// <returns></returns>
    public PnrAnalysis.Model.TripPrintData GetPrintData()
    {
        PnrAnalysis.Model.TripPrintData model = null;
        if (Request["OrderId"] != null && Request["OrderId"].ToString() != "" && Request["PasId"] != null && Request["PasId"].ToString() != "")
        {
            model = new PnrAnalysis.Model.TripPrintData();
            model.m_strOrderId     = Request["OrderId"].ToString();
            model.m_strPassengerId = Request["PasId"].ToString();

            OrderInputParam InputParam = new OrderInputParam();
            string          ErrMsg     = "";
            //成人订单数据显示
            InputParam = OrderBLL.GetOrder(model.m_strOrderId, InputParam, out ErrMsg);
            if (InputParam != null && InputParam.OrderParamModel.Count > 0)
            {
                OrderMustParamModel OMP       = InputParam.OrderParamModel[0];
                Tb_Ticket_Passenger Passenger = OMP.PasList.Find(delegate(Tb_Ticket_Passenger _TP)
                {
                    return(_TP.id.ToString().ToUpper() == model.m_strPassengerId.ToUpper());
                });
                Tb_TripDistribution         tb_tripdistribution = null;
                Tb_Ticket_Order             Order   = OMP.Order;
                List <Tb_Ticket_SkyWay>     skyList = OMP.SkyList;
                PbProject.Model.ConfigParam config  = this.configparam;
                if (Passenger != null && Order != null)
                {
                    if (Passenger.TravelNumber.Trim() != "")
                    {
                        string sqlWhere = string.Format(" TripNum='{0}' and UseCpyNo='{1}' ", Passenger.TravelNumber.Trim(), Order.OwnerCpyNo);
                        List <Tb_TripDistribution> TTPList = this.baseDataManage.CallMethod("Tb_TripDistribution", "GetList", null, new object[] { sqlWhere }) as List <Tb_TripDistribution>;
                        if (TTPList != null && TTPList.Count > 0)
                        {
                            tb_tripdistribution = TTPList[0];
                        }
                    }
                    //管理员
                    if (mCompany.RoleType == 1)
                    {
                        string GYCpyNo = Order.OwnerCpyNo;
                        if (Order.OwnerCpyNo.Length >= 12)
                        {
                            GYCpyNo = GYCpyNo.Substring(0, 12);
                        }
                        List <Bd_Base_Parameters> baseParamList = baseDataManage.CallMethod("Bd_Base_Parameters", "GetList", null, new Object[] { "CpyNo='" + GYCpyNo + "'" }) as List <Bd_Base_Parameters>;
                        config = Bd_Base_ParametersBLL.GetConfigParam(baseParamList);
                    }

                    #region 获取 配置号
                    if (tb_tripdistribution != null)
                    {
                        //航协号
                        model.m_strIataCode = tb_tripdistribution.IataCode;
                        //中文填开单位
                        model.m_strCNTKTConjunction = tb_tripdistribution.OwnerCpyName;
                        //office
                        model.m_strAgentOffice = tb_tripdistribution.CreateOffice;
                        //行程单号
                        model.m_strTravelNumber = tb_tripdistribution.TripNum;
                    }
                    else
                    {
                        //行程单号为空时
                        if (config != null)
                        {
                            string   PrintOffice      = GetPrintOffice(Order.OwnerCpyNo, Order.CarryCode.Split('/')[0]);
                            string[] Arroffice        = config.Office.Split('^');        //office
                            string[] ArrIataCode      = config.IataCode.Split('^');      //航协号
                            string[] ArrTicketCompany = config.TicketCompany.Split('^'); //公司名称
                            for (int i = 0; i < Arroffice.Length; i++)
                            {
                                if (Arroffice.Length == ArrIataCode.Length && Arroffice.Length == ArrTicketCompany.Length)
                                {
                                    if (PrintOffice == "")
                                    {
                                        //Office
                                        model.m_strAgentOffice = Arroffice[i];
                                        //中文填开单位
                                        model.m_strCNTKTConjunction = ArrTicketCompany[i];
                                        //航协号
                                        model.m_strIataCode = ArrIataCode[i];//航协号
                                        break;
                                    }
                                    else
                                    {
                                        if (PrintOffice.ToUpper() == Arroffice[i].ToUpper())
                                        {
                                            //Office
                                            model.m_strAgentOffice = Arroffice[i];             //Office
                                            //中文填开单位
                                            model.m_strCNTKTConjunction = ArrTicketCompany[i]; //填开单位
                                            //航协号
                                            model.m_strIataCode = ArrIataCode[i];              //航协号
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion

                    //乘客姓名
                    model.m_strPassengerName = Passenger.PassengerName;
                    //乘客证件号
                    model.m_strPassengerCardId = Passenger.Cid;
                    //签注
                    model.m_strEndorsements = ddlEndorsements.SelectedValue;
                    //小编码
                    model.m_strPnrB = Order.PNR.ToUpper();
                    //行程单号
                    model.m_strTravelNumber = Passenger.TravelNumber.Trim();
                    //舱位价
                    model.m_strSpaceFare = Passenger.PMFee.ToString("F2");
                    //基建费
                    model.m_strABFare = Passenger.ABFee.ToString("F2");
                    //燃油费
                    model.m_strFuelFare = Passenger.FuelFee.ToString("F2");
                    //总价
                    model.m_strTotalFare = (Passenger.PMFee + Passenger.ABFee + Passenger.FuelFee).ToString("F2");
                    //保险费
                    model.m_strInsuranceFare = "XXX";
                    //其他费用
                    model.m_strOtherFare = "0.00";
                    //票号
                    model.m_strTicketNumber = Passenger.TicketNumber;
                    //验证码
                    model.m_strCheckNum = Passenger.TravelNumber.Length > 4 ? (Passenger.TravelNumber.Substring(Passenger.TravelNumber.Length - 4, 4)) : txtCheckNum.Value;
                    //填开日期
                    model.m_strIssuedDate = System.DateTime.Now.ToString("yyyy-MM-dd");
                    //航段
                    if (skyList != null && skyList.Count > 0)
                    {
                        //第一段
                        model.m_strFCityName1    = skyList[0].FromCityName;    //出发城市
                        model.m_strTCityName1    = skyList[0].ToCityName;      //到达城市
                        model.m_strAirName1      = skyList[0].CarryName;       //航空公司名称
                        model.m_strAirCode1      = skyList[0].CarryCode;       //航空公司二字码
                        model.m_strFlightNum1    = skyList[0].FlightCode;      //航班号
                        model.m_strSpace1        = skyList[0].Space.ToUpper(); //舱位
                        model.m_strTicketBasis1  = skyList[0].Space.ToUpper(); //舱位等级
                        model.m_strFlyDate1      = skyList[0].FromDate.ToString("yyyy-MM-dd");
                        model.m_strFlyStartTime1 = skyList[0].FromDate.ToString("HH:mm");
                        model.m_strFlyEndTime1   = skyList[0].ToDate.ToString("HH:mm"); //到达时间
                        model.m_strTerminal1     = skyList[0].Terminal;                 //航站楼

                        //行李
                        model.m_strAllowPacket1 = "20K";
                        if (model.m_strSpace1 == "C")
                        {
                            model.m_strAllowPacket1 = "30K";
                        }
                        else if (model.m_strSpace1 == "F")
                        {
                            model.m_strAllowPacket1 = "40K";
                        }
                        //-------------------------------------------
                        //第二段
                        if (skyList.Count > 1)
                        {
                            model.m_strFCityName2    = skyList[1].FromCityName;    //出发城市
                            model.m_strTCityName2    = skyList[1].ToCityName;      //到达城市
                            model.m_strAirName2      = skyList[1].CarryName;       //航空公司名称
                            model.m_strAirCode2      = skyList[1].CarryCode;       //航空公司二字码
                            model.m_strFlightNum2    = skyList[1].FlightCode;      //航班号
                            model.m_strSpace2        = skyList[1].Space.ToUpper(); //舱位
                            model.m_strTicketBasis2  = skyList[1].Space.ToUpper(); //舱位等级
                            model.m_strFlyDate2      = skyList[1].FromDate.ToString("yyyy-MM-dd");
                            model.m_strFlyStartTime2 = skyList[1].FromDate.ToString("HH:mm");
                            model.m_strFlyEndTime2   = skyList[1].ToDate.ToString("HH:mm"); //到达时间
                            model.m_strTerminal2     = skyList[1].Terminal;                 //航站楼
                            //行李
                            model.m_strAllowPacket2 = "20K";
                            if (model.m_strSpace2 == "C")
                            {
                                model.m_strAllowPacket2 = "30K";
                            }
                            else if (model.m_strSpace2 == "F")
                            {
                                model.m_strAllowPacket2 = "40K";
                            }
                            if (model.m_strFCityName2 == model.m_strTCityName1)
                            {
                                if (model.m_strFCityName1 != model.m_strTCityName2)
                                {
                                    model.m_strTravelType = "3";//联程
                                }
                                else
                                {
                                    model.m_strTravelType = "2";//往返
                                }
                            }
                            else
                            {
                                if (skyList.Count == 2)
                                {
                                    model.m_strTravelType = "4";//缺口程
                                }
                                else
                                {
                                    model.m_strTravelType = "5";//多程
                                }
                            }
                        }
                    }
                }
            }
        }
        return(model);
    }